使用Java Key Tool安装中间/链证书

时间:2017-01-01 14:03:32

标签: tomcat ssl tomcat7 ssl-certificate jks

我有一个为Confluence制作的JKS文件,它已包含我的私钥和公钥。 它适用于大多数浏览器,虽然只是一个小问题。 在sslshopper上,我收到以下消息:

  

所有网络浏览器都不信任该证书。你可能需要   安装中间/链证书以将其链接到受信任的根   证书。

我从Comodo获得了CA chain + Root,阅读并尝试了以下内容:

keytool -importcert -keystore fecru.jks -storepass SECRET -trustcacerts -alias chain -file cachain.bundle

即使证书已成功添加到密钥存储区,我仍然会得到相同的结果。

我错过了什么?

1 个答案:

答案 0 :(得分:2)

这是我在" Java TLS中使用Keystores"作弊表,我需要一直提及,因为出于某种原因,如果你没有完美地做到这一点,似乎没有什么工作。

  1. 生成服务器密钥(和自签名证书)

    $ keytool -genkey -keyalg RSA -sigalg SHA256withRSA -keysize 4096 -alias ${HOSTNAME} -keystore ${HOSTNAME}.jks

  2. 创建证书签名请求(CSR)

    $ keytool -certreq -sigalg SHA256withRSA -keystore ${HOSTNAME}.jks

  3. 让您的CSR由证书颁发机构(CA)签名

  4. 将证书重新导入密钥库,从CA的根证书开始,然后将链返回到服务器的证书

    $ keytool -import -alias [Authority.CA] -trustcacerts -file [authority's CA cert] -keystore ${HOSTNAME}.jks

    $ keytool -import -alias [Authority.intermediate] -trustcacerts -file [authority's intermediate cert] -keystore ${HOSTNAME}.jks

    $ keytool -import -alias ${HOSTNAME} -file ${HOSTNAME}.crt -keystore ${HOSTNAME}.jks

  5. 在生成服务器密钥之后,我总是制作密钥库的备份副本,以防万一我破坏了。

    一些事情严重重要:

    1. 请务必在步骤1和4c中使用相同的alias(导入服务器的签名证书)
    2. 请记住将Tomcat keyAlias中的<Connector>属性设置为您用于服务器证书的相同值(同样,值与步骤1和4c相同)以上)
    3. 我强烈建议您使用Qualys's SSLTest工具来测试您的网站。它是我所知道的最全面的测试工具,而且它不会向你推销任何东西。