Tomcat (OS: MS Windows) で SSL ハンドシェイクをデバッグする必要があるため、web にある指示に従い、setenv.bat の次の行でそれを有効にしました。
「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>" />