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

Roa*_*alt 8 java sockets ssl

我想使用以下代码建立服务器SSL套接字连接:

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

// Listen for connections
Socket socket = ssocket.accept();
Run Code Online (Sandbox Code Playgroud)

我得到一个" javax.net.ssl.SSLException:没有可用的证书或密钥对应于已启用的SSL密码套件. "在接受时.

我使用以下命令创建了一个包含RSA密钥的密钥库:

keytool -genkeypair -alias ClubConnectionCert -keyalg RSA -validity 7 -keystore ClubConnectionKeystore
Run Code Online (Sandbox Code Playgroud)

我用以下选项启动我的程序:

-Djavax.net.ssl.keyStore=ClubConnectionKeystore -Djavax.net.ssl.keyStorePassword=mypassword 
Run Code Online (Sandbox Code Playgroud)

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

Jea*_*end 7

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

确保javax.net.ssl.keyStore正好到密钥存储文件.我将我的密钥库文件放在项目的根目录下.也许尝试密钥库的绝对路径.

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

祝你好运,你即将成功.