2

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>" />
4

1 に答える 1

4

sslImplementationName="org.apache.tomcat.util.net.jsse.JSSEImplementation"Connectorを追加して、JSSE の使用を強制してみてください。何らかの理由で、APR を検出し、機能していない OpenSSL を使用しようとしています。バグを埋めるか、Tomcat ユーザーのメーリング リストに質問するかもしれませんが、9.0.0 は開発リリースでした。

于 2018-02-08T13:52:16.783 に答える