我環顧四周,沒有看到任何問題完全解答了我想要的問題,但如果這是重複的,請將問題指向我,然後我將繼續前進。使用Java創建SSL連接
現在我正試圖編寫一個Java服務器,它將接收來自SSLServerSocket
的數據,現在只需將其打印出來。我最終希望這些數據來自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
我可以很容易地承認,我不完全理解這個作品是如何一大截,所以任何幫助,將不勝感激。另外,我想我會把它放在這個問題的範圍之外,因爲我覺得這是一個非常大的問題,但我也希望能夠在如果可能的情況下連接客戶端。對不起,所有的幫助提前,所有的麻煩和感謝。
編輯:
我跟着教程是在這裏:再次 http://www.akadia.com/services/ssh_test_certificate.html
謝謝!
編輯:
例外是扔是:
javax.net.ssl.SSLException: No available certificate or key corresponds to the SSL cipher suites which are enabled
我想谷歌的例外,大多數東西都描述瞭如何創建一個密鑰(這我的印象是一個教程,我已經有)。我將繼續篩選這些搜索結果。
謝謝!
可以運行[您套接字對象] .getEnabledCipherSuites()和[您套接字對象] .getSupportedCipherSuites - 然後粘貼輸出在你的問題(與你的證書是密碼一起創建 - 例如RC4-128等)? – jefflunt