如何修复SSL - 没有可用的证书

时间:2011-12-16 21:06:34

标签: java sockets 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 

我是否想念Keystore中要读取的代码,或者如何测试/调试实际使用的密钥库?

1 个答案:

答案 0 :(得分:7)

我执行了你的代码,我确认它工作正常。

确保 javax.net.ssl.keyStore 完全指向您的密钥库文件。 我将我的密钥库文件放在项目的根目录下。 也许尝试密钥库的绝对路径。

确保-D参数设置为JVM参数,而不是程序选项(在IDE中)。

祝你好运,你即将成功。