Java 配置Tomcat 7 HTTPS时,应用程序无法连接到其他HTTPS主机

Java 配置Tomcat 7 HTTPS时,应用程序无法连接到其他HTTPS主机,java,tomcat,https,debian,Java,Tomcat,Https,Debian,我有一个奇怪的问题: 当我将tomcat配置为通过https连接(在server.xml中配置连接器)工作时,我的应用程序将无法连接到其他https URL(外部api-s) 我得到的错误是: 原因:javax.net.ssl.SSLException:证书中的主机名不匹配: 我的连接器配置: <Connector protocol="HTTP/1.1" port="8443" maxThreads="200" scheme="https" sec

我有一个奇怪的问题: 当我将tomcat配置为通过https连接(在server.xml中配置连接器)工作时,我的应用程序将无法连接到其他https URL(外部api-s)

我得到的错误是: 原因: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-s

这里我假设,当我将应用程序连接到HTTPS时,$JAVA_HOME/jre/lib/security/cacerts应该用作信任库。但看起来tomcat在某种程度上搞乱了cacerts和my-https.keystore。当我使用相同的HTTPS配置在Jetty上运行我的应用程序时,一切都正常

有没有人有过同样的问题,或者我确实做错了什么

我的环境: *Debian气喘(AWS上); *Tomcat 7.0.28(与Debian一起提供);
*OpenJDK 1.7.0.25

没关系。httpcommons httpclient中有一些bug。切换到Jersey客户端,现在一切正常。