1

奇妙な問題があります: tomcat を https 接続 (server.xml でコネクタを構成) で動作するように構成すると、アプリケーションが他の https URL (外部 API) に接続できなくなります。

私が得るエラー: 原因: javax.net.ssl.SSLException: 証明書のホスト名が一致しませんでした: ...

私のコネクタ設定:

<Connector
       protocol="HTTP/1.1"
       port="8443" maxThreads="200"
       scheme="https" secure="true" SSLEnabled="true"
       keystoreFile="/home/user/my-https.keystore" keystorePass="changeit"
       clientAuth="false" sslProtocol="TLS"/>

私のキーストアは、必要なすべての RapidSSL 証明書を含む通常のキーストアです。

HTTPS 構成なしで Tomcat を実行すると、アプリは https を使用する他の外部 API に接続できます。

ここで想定しているのは、アプリケーションで HTTPS に接続する場合、$JAVA_HOME/jre/lib/security/cacerts をトラストストアとして使用する必要があるということです。しかし、Tomcat が cacerts と my-https.keystore を台無しにしているようです。同じ HTTPS conf を使用して Jetty でアプリを実行すると、すべてが機能します。

誰かが同じ問題を抱えていましたか、それとも私はここで文字通り間違ったことをしていますか?

私の環境: * Debian Wheezy (AWS 上); * Tomcat 7.0.28 (Debian に付属); * OpenJDK 1.7.0.25

4

0 に答える 0