配置 Tomcat 以使用 Windows 证书存储进行 SSL

问题描述 投票:0回答:4

我已经部署了许多 SSL 配置,包括 Tomcat(cacerts + keytool)和 IIS(Windows 证书存储 + netsh http sslcert),因此我熟悉这些过程。

有没有人想出一种方法将 Tomcat 的 SSL 连接器指向 Windows 应用商店(即配置、扩展、插件等)?只是希望将 SSL 部署的管理集中到一个商店,而不是拥有多个商店。

java windows tomcat ssl
4个回答
3
投票

根据“在Tomcat Windows服务器中启用SSL”的答案,您可以在server.xml中的连接器配置中将密钥库类型指定为“Windows-My”,它在Tomcat 8.0.22上也适用于我

<Connector port="8443" 
           protocol="org.apache.coyote.http11.Http11NioProtocol"
           SSLEnabled="true"
           maxThreads="150" 
           scheme="https" 
           secure="true"
           keyAlias="<alias of the cert>"
           keystoreFile=""
           keystoreType="Windows-My"
           clientAuth="false" 
           sslProtocol="TLS"
           keepAliveTimeout="200000" />

3
投票
<Connector port             ="8443"
           protocol         ="org.apache.coyote.http11.Http11NioProtocol"
           SSLEnabled       ="true"
           maxThreads       ="150"
           scheme           ="https"
           secure           ="true"
           keyAlias         ="<alias of the cert>"
           keystoreFile     =""
           keystorePass     =""
           keystoreType     ="Windows-My"
           clientAuth       ="false"
           sslProtocol      ="TLS"
           keepAliveTimeout ="200000"/>

keystoreFile
keystorePass
必须设置为空字符串。 (请参阅我对 Apache bug 跟踪器的评论:Bug 56021 - 使用 windows-my keystore 的 SSL 连接器

如果未设置,它们将默认为导致麻烦的值。

keyAlias
应该是证书的友好名称(如果有的话)或通用名称。


1
投票

看来不可能。来自 tomcat 8 文档 https://tomcat.apache.org/tomcat-8.0-doc/ssl-howto.html

tomcat 目前仅在 JKS、PKCS11 或 PKCS12 格式密钥库上运行。

Windows 应用商店需要一个类似于 JSSE 的“WINDOWS-MY”的特定连接器。

文档中没有提及 Windows 证书存储的任何插件或连接器。


0
投票

虽然 Dmitry 的解决方案适用于 Tomcat 8.0,但从 Tomcat 8.5 开始,有一个小警告:您需要将 JSSE 显式设置为

SSLImplementation
。因此配置变为(同时考虑 Tomcat 8.5 中引入的新结构):

<Connector port="8443"
           sslImplementationName="org.apache.tomcat.util.net.jsse.JSSEImplementation"
           scheme="https" secure="true" SSLEnabled="true">
    <SSLHostConfig>
        <Certificate certificateKeystoreType="Windows-MY"
                     certificateKeystoreFile=""
                     certificateKeyAlias="tomcat" />
    </SSLHostConfig>
</Connector>

或者,也可以在

useOpenSSL="false"
上设置
AprLifecycleListener

© www.soinside.com 2019 - 2024. All rights reserved.