配置Tomcat将Windows证书存储用于SSL



我已经部署了许多SSL配置,包括tomcat(cacerts keytool)和IIS(Windows证书存储 NetSH HTTP SSLCERT),因此我熟悉这些过程。<<<<<<<<<<<<<<<<

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

根据"在tomcat Windows Server中启用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" />
<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 必须设置为空字符串。在bz.apache.org上查看我的评论,"错误56021"

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

keyalias 应该是友好名称(如果有一个)或证书的通用名称。

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

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

Windows Store需要一个类似于JSSE的" Windows-My"的特定连接器。

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

dmitry的解决方案在tomcat 8.0上起作用,从tomcat 8.5开始时,有一个小警告:您需要将JSSE明确将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>

另外,也可以在AprLifecycleListener上设置useOpenSSL="false"

最新更新