Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tomcat中使用不同证书的多个HTTPS连接器_Tomcat_Ssl_Https - Fatal编程技术网

Tomcat中使用不同证书的多个HTTPS连接器

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"

我目前正在使用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"
    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,从而在启动过程中导致错误。有关更多信息,请参阅。

不使用单独连接器和单独密钥库的原因是什么?我想,个人偏好是,将所有内容都放在一个位置/文件中。严格来说这不是必要的,但我觉得这应该是可能的。毕竟,密钥库的设计意味着(或至少能够)存储多个密钥,而不仅仅是一个。这一点很好。看起来您已经有了答案。不使用单独的连接器和单独的密钥库的原因是什么?我想是个人偏好,将所有内容都放在一个位置/文件中。严格来说这不是必要的,但我觉得这应该是可能的。毕竟,密钥库的设计意味着(或至少能够)存储多个密钥,而不仅仅是一个。这一点很好。看来你已经有答案了。