我正在尝试从通过Internet通信的Java客户端/服务器应用程序保护连接.我的想法是使用带有自签名证书和客户端身份验证的SSL套接字.我做了以下事情:
keytool -genkey -kelalg RSA ...keytool -genkey -kelalg RSA ...keytool -export导出客户端证书并将keytool -import -v -trustcacerts其导入服务器的信任库keytool -export导出服务器证书并将keytool -import -v -trustcacerts其导入客户端的信任库信任和密钥库正确连接到服务器/客户端.我可以看到正在加载的证书(SSL调试信息).但整件事情都行不通.在SSL握手期间,我收到以下错误(SSL调试信息):
main, WRITE: TLSv1 Handshake, length = 897
main, READ: TLSv1 Handshake, length = 141
*** Certificate chain
***
main, SEND TLSv1 ALERT: fatal, description = bad_certificate
main, WRITE: TLSv1 Alert, length = 2
main, called closeSocket()
main, handling exception: javax.net.ssl.SSLHandshakeException: null cert chain
main, IOException in getSession(): javax.net.ssl.SSLHandshakeException: …Run Code Online (Sandbox Code Playgroud)