私は周りを見回し、私が望むものに完全に答えた質問は表示されませんでしたが、これが重複している場合は、質問に私を指摘してください。JavaでのSSL接続の作成
今、私はSSLServerSocket
からデータを受け取るJavaサーバーを作成しようとしています。今のところそれを印刷します。私は最終的にこのデータをAndroidから取得したいと思っていますが、今はデータ受信を開始する前にSSLException
をスローします。
コード:
System.setProperty("javax.net.ssl.keyStore","C:\\ProgramFiles\\jre6\\bin\\server.jks");
System.setProperty("javax.net.ssl.keyStorePassword","password");
SSLServerSocketFactory factory = (SSLServerSocketFactory) SSLServerSocketFactory.getDefault();
ServerSocket ss = factory.createServerSocket(6543);
Socket s = ss.accept();
あり、それを処理するために、その後の多くのコードがあるが、それがハングアップし、そこに例外をスローしますので、私はそれが任意のを助ける掲示わからないんだけど、それはするかどうか、ちょうどそれのためのコメント。
私はUbuntuの上でopensslのためのチュートリアル次の証明書を作成し、それを上に移して使用して、私のキーストアを作成しました:
keytool -import -file "C:\Documents and Settings\matt\Desktop\server.crt" -keystore server.jks
私は簡単に私は完全にこれの大部分がどのように機能するかを理解していないことを認めることができますだから、どんな助けもありがとう。また、私はこの質問の範囲外にしておきたいと思います。私はこれがかなり大きな質問であると感じているからですが、できるだけクライアントを接続する方法についていくつかの洞察もしたいと思います。すべてのトラブルに感謝し、すべての助けを借りて前もって感謝します。
EDIT:
私は、その後のチュートリアルはここにある: http://www.akadia.com/services/ssh_test_certificate.html
おかげで再び!
EDIT:
例外がスローされている:
javax.net.ssl.SSLException: No available certificate or key corresponds to the SSL cipher suites which are enabled
私はGoogleに例外を試してみましたが、ほとんどすべては私が私の印象の下で午前ストアを作成する方法を説明したチュートリアル(でした既に持っている)。私はこれらの検索結果に目を通し続けます。
ありがとうございます!あなたが必要なもの
keytool -import -file "server.crt" -keystore server.jks
は、秘密鍵+証明書を持っていることです。
あなたは[あなたのソケットオブジェクト] .getEnabledCipherSuites()と[あなたのソケットオブジェクト] .getSupportedCipherSuitesを実行することはできます - そして、あなたの証明書だった暗号と一緒に(あなたの質問にその出力を貼り付けRC4-128などのために作成された)? – jefflunt