如何在 tomcat 8 中安装 CA 签名的 SSL 证书

如何在 tomcat 8 中安装 CA 签名的 SSL 证书

我有 2 个由 CA 签名的证书。我想使用这些证书在 tomcat 上启用 ssl。

我运行以下命令来创建 jks 文件并将证书导入该 jks 文件。

1. keytool -genkey -alias bmark.com -keyalg RSA -keystore keystore.jks
2. keytool -import -alias root -keystore keystore.jks -trustcacerts -file b32dasd75493.crt
3. keytool -import -alias intermed -keystore keystore.jks -trustcacerts -file sf_bundle-g2-g1.crt

并在tomcat的server.xml中启用https

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" keystoreFile="/Users/test/Desktop/keystore.jks" keystorePass="changeme"/>

启动tomcat并打开urlhttps://bmark.com:8080在 chrome 中,但它声称 CA 签名的 SSL 证书不受信任,声称它是自签名的。除了这些之外,我还需要其他文件吗?我该如何解决这个问题?

答案1

要检查 CA 响应是否已正确安装,请运行:

keytool -list -keystore /Users/test/Desktop/keystore.jks -alias bmark.com -v

它应该向您显示从叶到根的证书链。

在您的连接器定义中您没有指定密钥别名,因此将使用找到的第一个证书。将其更改为:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
           clientAuth="false" sslProtocol="TLS"
           keystoreFile="/Users/test/Desktop/keystore.jks"
           keystorePass="changeme"
           keyAlias="bmark.com" />

或者,如果你使用Tomcat 8.5(你不应该使用 Tomcat 8.0),切换到新的 SSL 配置:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="150" scheme="https" secure="true" SSLEnabled="true">
    <SSLHostConfig protocols="TLS">
        <Certificate certificateKeystoreFile="/Users/test/Desktop/keystore.jks"
                     certificateKeystorePassword="changeme"
                     certificateKeyAlias="bmark.com" />
    </SSLHostConfig>
</Connector>

编辑:要安装所有三个证书,您只需要一个包含您的证书和中间件(按从词干到词根的顺序)的文件,然后运行:

keytool -importcert -keystore /Users/test/Desktop/keystore.jks\
-alias bmark.com -file <chain_file> -trustcacerts

或者你也可以从根部到茎部分别插入。

相关内容