Tomcat 8.5上的多个SSL配置
问题描述:
我正在尝试使用单个IP在Tomcat 8.5上配置多个SSL证书。我的相关server.xml中看起来是这样的:Tomcat 8.5上的多个SSL配置
<Connector port="9090" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8"
redirectPort="9443" />
<Connector port="9443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true" hostName="firstnationalsculpturepark.com"
clientAuth="false" sslProtocol="TLS" defaultSSLHostConfigName="firstnationalsculpturepark.com"
>
<SSLHostConfig hostname="firstnationalsculpturepark.com">
<Certificate
certificateKeystoreFile="/apache/conf/twinfeats.keystore"
certificateKeystorePassword="xxxxxxx"
certificateKeyAlias="firstnationalsculpturepark"
/>
</SSLHostConfig>
</Connector>
在启动时,以下记录:
03-Aug-2016 16:47:04.541 WARNING [main] org.apache.catalina.startup.SetAllPropertiesRule.begin [SetAllPropertiesRule]{Server/Service/Connector} Setting property 'hostName' to 'firstnationalsculpturepark.com' did not find a matching property.
我不知道我在做什么错误的,因为主机名属性中指示Tomcat 8.5文档作为SSLHostConfig的一个属性。 (上面的错误然后导致试图找到默认密钥库文件的错误,因为它不使用我指定的那个,但是这是预期的。)
答
我有多个SSLConfig工作,但请注意“主机名“在上面的SSLHostConfig应该有一个大写'N',例如hostName。 PLUS ...我不得不升级到tomcat 8.5.13(最新版本),因为它似乎与当时使用的8.5.4不兼容。
我对别人例如:
<Connector port="443"
............
scheme="https" secure="true" SSLEnabled="true"
defaultSSLHostConfigName="mydomain.com">
<SSLHostConfig hostName="mydomain.com"
certificateVerification="false">
<Certificate
certificateKeystoreFile="my.ks"
certificateKeystorePassword="password"
certificateKeyAlias="cert1"/>
</SSLHostConfig>
<SSLHostConfig hostName="mydomain2.com"
certificateVerification="false">
<Certificate
certificateKeystoreFile="my.ks"
certificateKeystorePassword="password"
certificateKeyAlias="cert2"/>
</SSLHostConfig>
</Connector>
'hostName'是一个属性'SSHConfig'而不是'Connector',和你在'Connector' –
尼斯抓得到的错误,谢谢!我从连接器中删除了hostName属性,现在唯一剩下的错误是它抱怨说它找不到.keystore,即使我正在尝试配置twinfeats.keystore。有任何想法吗? – TwinFeats
我做了一些改变,错误消失了,但我不明白为什么。 :)我将不推荐使用的keystoreFile和keystorePass属性添加到连接器,现在它开始正常工作。所以它看起来不像我的默认SSLHostConfigName? – TwinFeats