Tomcat中使用不同证书的多个HTTPS连接器
我目前正在使用Tomcat8.5通过HTTPs托管web应用程序。连接器配置如下所示:Tomcat中使用不同证书的多个HTTPS连接器,tomcat,ssl,https,Tomcat,Ssl,Https,我目前正在使用Tomcat8.5通过HTTPs托管web应用程序。连接器配置如下所示: <Connector port="8443" protocol="HTTP/1.1" connectionTimeout="10000" maxHttpHeaderSize="65536" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS"
<Connector
port="8443"
protocol="HTTP/1.1"
connectionTimeout="10000"
maxHttpHeaderSize="65536"
SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS"
keystoreFile="myKeystore"
keystorePass="changeit"
/>
我现在要做的是在另一个URL和另一个证书下托管应用程序,最好是从同一个密钥库
就我所知,我需要添加第二个连接器。我的问题是,我不确定如何告诉连接器在密钥库中使用哪个证书
这似乎与使用keyAlias属性有关。然而,这似乎已被弃用,取而代之的是SSLHostConfig。不幸的是,对于任何一种配置方式,我都没有找到适合我的用例的文档,更不用说示例了
如何正确配置连接器?如果有多种方法,什么是最佳实践?我是否应该将两个证书都存储在同一个密钥库中?在找到一个详细说明所有连接器的页面后,我在Tomcat文档中创建了一个工作设置 这两个连接器现在如下所示:
<Connector
address="192.168.0.100"
port="8443"
protocol="HTTP/1.1"
maxHttpHeaderSize="65536" connectionTimeout="10000"
SSLEnabled="true" scheme="https" secure="true">
<SSLHostConfig
sslProtocol="TLS"
certificateVerification="false">
<Certificate
certificateKeystoreFile="myKeystore"
certificateKeystorePassword="changeit"
certificateKeyAlias="server1cert"
certificateKeyPassword="server1pw"
/>
</SSLHostConfig>
</Connector>
<Connector
address="192.168.0.101"
port="8443"
protocol="HTTP/1.1"
maxHttpHeaderSize="65536" maxThreads="150"
SSLEnabled="true" scheme="https" secure="true">
<SSLHostConfig
sslProtocol="TLS"
certificateVerification="false">
<Certificate
certificateKeystoreFile="myKeystore"
certificateKeystorePassword="changeit"
certificateKeyAlias="server2cert"
certificateKeyPassword="server2pw"
/>
</SSLHostConfig>
</Connector>
需要注意的是替换连接器中所有不推荐使用的SSL属性否则,Tomcat将根据不推荐使用的属性在内部创建默认SSLHostConfig,从而在启动过程中导致错误。有关更多信息,请参阅。在找到详细说明所有连接器的页面后,我在Tomcat文档中创建了一个工作设置 这两个连接器现在如下所示:
<Connector
address="192.168.0.100"
port="8443"
protocol="HTTP/1.1"
maxHttpHeaderSize="65536" connectionTimeout="10000"
SSLEnabled="true" scheme="https" secure="true">
<SSLHostConfig
sslProtocol="TLS"
certificateVerification="false">
<Certificate
certificateKeystoreFile="myKeystore"
certificateKeystorePassword="changeit"
certificateKeyAlias="server1cert"
certificateKeyPassword="server1pw"
/>
</SSLHostConfig>
</Connector>
<Connector
address="192.168.0.101"
port="8443"
protocol="HTTP/1.1"
maxHttpHeaderSize="65536" maxThreads="150"
SSLEnabled="true" scheme="https" secure="true">
<SSLHostConfig
sslProtocol="TLS"
certificateVerification="false">
<Certificate
certificateKeystoreFile="myKeystore"
certificateKeystorePassword="changeit"
certificateKeyAlias="server2cert"
certificateKeyPassword="server2pw"
/>
</SSLHostConfig>
</Connector>
需要注意的是替换连接器中所有不推荐使用的SSL属性否则,Tomcat将根据不推荐使用的属性在内部创建默认SSLHostConfig,从而在启动过程中导致错误。有关更多信息,请参阅。不使用单独连接器和单独密钥库的原因是什么?我想,个人偏好是,将所有内容都放在一个位置/文件中。严格来说这不是必要的,但我觉得这应该是可能的。毕竟,密钥库的设计意味着(或至少能够)存储多个密钥,而不仅仅是一个。这一点很好。看起来您已经有了答案。不使用单独的连接器和单独的密钥库的原因是什么?我想是个人偏好,将所有内容都放在一个位置/文件中。严格来说这不是必要的,但我觉得这应该是可能的。毕竟,密钥库的设计意味着(或至少能够)存储多个密钥,而不仅仅是一个。这一点很好。看来你已经有答案了。