私はまったくSSLを使用していません。非常にシンプルなクライアントサーバーを作成し、クライアントからサーバーにファイルを送信したり、サーバーからファイルを取得したりすることができます。私はkeytoolのコマンドラインから自己署名X509証明書を使ってキーストアを生成し、それを私のサーバディレクトリに保存しました。Java - SSLサーバーの作成
私が最初にガイドとしてhttp://stilius.net/java/java_ssl.phpを使用して自分のサーバーを作成したが、それは仕事を得ることができなかったので、私は、しかし少し困惑している、私は、サーバーとの私のキーストアをリンクする
System.setProperty("javax.net.ssl.keyStore", jksFilepath);
System.setProperty("javax.net.ssl.keyStorePassword", jkspass);
を使用していました。ファイルを取得しようとするたびに、Java SSLHandshakeException「共通の暗号スイートがありません」が表示されます。
ただし、私のサーバーをセットアップするのにhttp://www.java2s.com/Tutorial/Java/0490__Security/SSLContextandKeymanager.htm と同じコードを使用すると、それは問題なく動作します。
また、2番目のガイドではServerSocketを使用していますが、SSLSocketは使用しないでください。私は、サーバーを実行し、ファイルを取得するときに両方の間の切り替えは何も変更されていないようです。 2番目の例では、あなたの問題
の可能な重複のため
(必要なパラメータなし)デフォルトコンテキストを作成し
SSLContext.getDefault()
2番目のリンクをチェックを呼び出すに作成された最初の例ではKeyManagers
でinitedされます。それは壊れていますhttp://www.java2s.com/Tutorial/Java/0490__Security/SSLContextandKeymanager.htm – pedrofb
証明書をjreセキュリティでインポートします。 –
2番目の例は 'SSLServerSockst'を作成しますが、' ServerSocket'変数に格納します。 'SSLServerSocket'メソッドを呼び出す必要がなければ問題ありません。 – EJP