Java 配置Tomcat 7 HTTPS时,应用程序无法连接到其他HTTPS主机
我有一个奇怪的问题: 当我将tomcat配置为通过https连接(在server.xml中配置连接器)工作时,我的应用程序将无法连接到其他https URL(外部api-s) 我得到的错误是: 原因:javax.net.ssl.SSLException:证书中的主机名不匹配: 我的连接器配置: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
<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客户端,现在一切正常。