在SSL/TLS通信时,使用双向认证模式时,SSL握手过程中,服务端不仅需要验证客户端的证书、客户端也需要验证服务端的证书,在开发过程中经常会碰到握手失败的情况,解决握手失败的问题通常需要以下处理方法:
1.抓包分析握手过程中哪一个环节出了问题。
2.通过分析SSL日志来定位问题。
第1种处理办法,需要我们自己去了解一些抓包工具的使用,比如wireshark。
第2种处理办法,需要我们打开SSL日志调试功能,那么如何打开日志调试功能?我们需要在以下场景中增加jvm参数的配置:
-
用tomcat作为web容器时,windows操作系统修改catalina.bat,linux操作系统修改catalina.sh,在JAVA_OPTS参数中加入 -Djavax.net.debug=all
-
eclipse maven jetty 开发环境下,可以按照下图进行配置。
-
配置完成后,点击上图中Debug,在下图控制台中我们就可以看到SSL debug日志了。