Debugging SSL握手调试不再适用于Apache Tomcat/9.0.0.M22
我必须在Tomcat OS:MS Windows上调试SSL握手,因此我遵循了web中的说明,并在setenv.bat中使用以下行启用了它: 设置JAVA\u OPTS=%JAVA\u OPTS%-Djavax.net.debug=ssl 使用ApacheTomcat/9.0.0.M21,一切正常,当我用浏览器打开页面时,我可以看到命令行上的握手 使用ApacheTomcat/9.0.0.M22,我只能看到启动时加载了哪些证书,但在启动之后,当我通过浏览器调用服务器时,命令行上不会生成更多的输出 我能发现的唯一区别是,这些版本之间的Protocolhandler不同: ApacheTomcat/9.0.0.M21使用ProtocolHandler[https-jsse-nio-8083] ApacheTomcat/9.0.0.M22使用ProtocolHandler[https-openssl-nio-8083] 要启用ssl握手调试,我还需要做些什么 这是我在server.xml中配置的连接器:Debugging SSL握手调试不再适用于Apache Tomcat/9.0.0.M22,debugging,ssl,https,tomcat9,Debugging,Ssl,Https,Tomcat9,我必须在Tomcat OS:MS Windows上调试SSL握手,因此我遵循了web中的说明,并在setenv.bat中使用以下行启用了它: 设置JAVA\u OPTS=%JAVA\u OPTS%-Djavax.net.debug=ssl 使用ApacheTomcat/9.0.0.M21,一切正常,当我用浏览器打开页面时,我可以看到命令行上的握手 使用ApacheTomcat/9.0.0.M22,我只能看到启动时加载了哪些证书,但在启动之后,当我通过浏览器调用服务器时,命令行上不会生成更多的输出
<Connector port="8083" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="<Path to Keystore>"
keystorePass="<KeystorePW>" />
通过在连接器中添加sslImplementationName=org.apache.tomcat.util.net.JSSE.JSSEImplementation,尝试强制使用JSSE。不管出于什么原因,它都在检测APR并试图使用OpenSSL,但这不起作用。您可能会填写一个bug或询问Tomcat用户邮件列表,但9.0.0是一个开发版本。在catalina日志中,您应该会看到一行,其中包含已完成的启动,以及启动过程所需的时间。你能先检查一下吗?然后我们就知道开始是否结束了。是的,我能看到那条线。org.apache.catalina.startup.catalina.startup在453 ms Server中的服务器启动操作和响应完全正常。您是否尝试使用M21的Server.xml运行M22,甚至复制整个conf目录?是的,我完全调整了所有settings settings.xml、logging.properties、setenv.bat、,所以这两个雄猫之间的唯一区别就是版本。谢谢你,这真的很有帮助!