如何将证书链添加到密钥库?

新手上路,请多包涵

我有带有证书链的文件 - certificate.cer:

 subject=/C...
issuer=/C=US/O=VeriSign, Inc...
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----

subject=/C=US/O=VeriSign, Inc...
issuer=/C=US/O=VeriSign, Inc...
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----

subject=/C=US/O=VeriSign, Inc...
issuer=/C=US/O=VeriSign, Inc...
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----

我需要将此证书链添加到密钥库。

我所做的:

 openssl x509 -outform der -in certificate.cer -out cert.der
keytool -v -importcert -alias mykey -file cert.der -keypass <passwd> -keystore keystore -storepass <passwd> -alias <myalias>

结果我在密钥库中只有 1 个证书。

但是应该有3个。

有什么问题吗?

解决方案:

CA 以 PKCS#7 格式向我发送了证书。

我将它们存储在 certificate.p7b 文件中,然后通过以下命令将它们成功添加到密钥库中:

 keytool -import -trustcacerts -file certificate.p7b -keystore keystore -storepass <mypasswd> -alias "myalias"

原文由 Volodymyr Bezuglyy 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 432
2 个回答

从 keytool man - 它导入证书链,如果输入以 PKCS#7 格式给出,否则只导入单个证书。您应该能够通过 openssl crl2pkcs7 命令使用 openssl 将证书转换为 PKCS#7 格式。

原文由 Nickolay Olshevsky 发布,翻译遵循 CC BY-SA 3.0 许可协议

我通过将所有 pems 放在一起解决了这个问题:

 cat cert.pem chain.pem fullchain.pem >all.pem
openssl pkcs12 -export -in all.pem -inkey privkey.pem -out cert_and_key.p12 -name tomcat -CAfile chain.pem -caname root -password MYPASSWORD
keytool -importkeystore -deststorepass MYPASSWORD -destkeypass MYPASSWORD -destkeystore MyDSKeyStore.jks -srckeystore cert_and_key.p12 -srcstoretype PKCS12 -srcstorepass MYPASSWORD -alias tomcat
keytool -import -trustcacerts -alias root -file chain.pem -keystore MyDSKeyStore.jks -storepass MYPASSWORD

(keytool 不知道如何处理 PKCS7 格式的密钥)

我从 letsencrypt 得到了所有的 PEMS

原文由 nont 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题