2011-12-16 64 views
8

我想用下面的代碼,以使服務器的SSL套接字連接:如何解決SSL - 無證書

int port = 12000; 
ServerSocketFactory ssocketFactory = SSLServerSocketFactory.getDefault(); 
ServerSocket ssocket = ssocketFactory.createServerSocket(port); 

// Listen for connections 
Socket socket = ssocket.accept(); 

我得到一個「javax.net.ssl.SSLException:沒有證書或密鑰對應於啓用的SSL密碼套件。「」在進行接受時。

我創建了一個包含使用RSA密鑰的密鑰庫:

keytool -genkeypair -alias ClubConnectionCert -keyalg RSA -validity 7 -keystore ClubConnectionKeystore 

,我用下面的選項開始我的計劃:

-Djavax.net.ssl.keyStore=ClubConnectionKeystore -Djavax.net.ssl.keyStorePassword=mypassword 

難道我錯過了一些代碼密鑰庫中的閱讀,或者我如何測試/調試給定的密鑰庫實際使用?

回答

7

我執行你的代碼,我確認它工作正常。

確保javax.net.ssl.keyStore正是到您的密鑰存儲文件。 我把我的keystore文件放在我的項目的根目錄下。 也許嘗試你的密鑰庫的絕對路徑。

確保將-D參數設置爲JVM params,而不是程序選項(在IDE中)。

祝你好運,你即將成功。

+0

另外:確保ssl實際上沒有java的工作。 – jayunit100 2011-12-16 21:42:49