SSL 握手调试不再适用于 Apache Tomcat/9.0.0.M22
SSL Handshake Debugging not working any more with Apache Tomcat/9.0.0.M22
我必须在 Tomcat (OS: MS Windows) 上调试 SSL 握手,所以我按照在网络上找到的说明进行操作,并使用以下行启用它setenv.bat:
set "JAVA_OPTS=%JAVA_OPTS% -Djavax.net.debug=ssl"
使用 Apache Tomcat/9.0.0.M21 一切正常,当我用浏览器打开页面时,我可以在命令行上看到握手。
使用 Apache Tomcat/9.0.0.M22 我只能看到启动时正在加载哪些证书,但之后当我通过浏览器调用服务器时,命令行不再生成输出。
我能发现的唯一区别是这些版本之间的 Protocolhandler 不同:
- Apache Tomcat/9.0.0.M21 使用 ProtocolHandler ["https-jsse-nio-8083"]
- Apache Tomcat/9.0.0.M22 使用 ProtocolHandler ["https-openssl-nio-8083"]
我还需要做些什么来启用 ssl 握手调试吗?
这是我在 server.xml 中配置的连接器:
<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。您可以填写错误或询问 Tomcat 用户邮件列表,但 9.0.0 是开发版本。
我必须在 Tomcat (OS: MS Windows) 上调试 SSL 握手,所以我按照在网络上找到的说明进行操作,并使用以下行启用它setenv.bat:
set "JAVA_OPTS=%JAVA_OPTS% -Djavax.net.debug=ssl"
使用 Apache Tomcat/9.0.0.M21 一切正常,当我用浏览器打开页面时,我可以在命令行上看到握手。
使用 Apache Tomcat/9.0.0.M22 我只能看到启动时正在加载哪些证书,但之后当我通过浏览器调用服务器时,命令行不再生成输出。
我能发现的唯一区别是这些版本之间的 Protocolhandler 不同:
- Apache Tomcat/9.0.0.M21 使用 ProtocolHandler ["https-jsse-nio-8083"]
- Apache Tomcat/9.0.0.M22 使用 ProtocolHandler ["https-openssl-nio-8083"]
我还需要做些什么来启用 ssl 握手调试吗?
这是我在 server.xml 中配置的连接器:
<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。您可以填写错误或询问 Tomcat 用户邮件列表,但 9.0.0 是开发版本。