我想使用以下代码建立服务器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中要读取的代码,或者如何测试/调试实际使用的密钥库?
答案 0 :(得分:7)
我执行了你的代码,我确认它工作正常。
确保 javax.net.ssl.keyStore 将完全指向您的密钥库文件。 我将我的密钥库文件放在项目的根目录下。 也许尝试密钥库的绝对路径。
确保-D参数设置为JVM参数,而不是程序选项(在IDE中)。
祝你好运,你即将成功。