小编Chr*_*ris的帖子

Java:具有自签名证书的SSL客户端身份验证

我正在尝试从通过Internet通信的Java客户端/服务器应用程序保护连接.我的想法是使用带有自签名证书和客户端身份验证的SSL套接字.我做了以下事情:

  • 服务器:包含新自签名证书的密钥库. keytool -genkey -kelalg RSA ...
  • 客户端:包含新自签名证书的密钥库. keytool -genkey -kelalg RSA ...
  • 服务器:包含导出的客户端证书的Truststore(来自上面的项目符号).keytool -export导出客户端证书并将keytool -import -v -trustcacerts其导入服务器的信任库
  • 客户端:包含导出的服务器证书的Truststore(来自第一个项目符号点).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)

java ssl self-signed

18
推荐指数
1
解决办法
4万
查看次数

标签 统计

java ×1

self-signed ×1

ssl ×1