【问题标题】:How can I replace the expired intermediate CA certificate in a keystore file?如何替换密钥库文件中过期的中间 CA 证书?
【发布时间】:2020-10-19 11:39:07
【问题描述】:

如何替换密钥库文件中的新中间 CA 证书?

嗨, 我在服务器上运行了一个密钥库文件以支持 Tomcat TLS/HTTPS 服务。 在这个密钥库文件中,有 3 个证书 -

  1. 结束证书(tomcat)
  2. 中间 CA 证书 (my_ssl_ca_v2_b)
  3. 根 CA 证书 (my_root_ca)

这是证书列表。

C:\Program Files\Java\jre1.8.0_144\bin>keytool.exe -list  -keystore C:\mycert\
my.keystore
Enter keystore password:

Keystore type: JKS
Keystore provider: SUN
Your keystore contains 3 entries
tomcat, Oct 10, 2019, PrivateKeyEntry,
Certificate fingerprint (SHA1): 3C:15:E8:D0:46:A8:8D:1F:93:52:9D:54:35:48:69:71:ED:49:44:65
my_ssl_ca_v2_b, Oct 10, 2019, trustedCertEntry,
Certificate fingerprint (SHA1): 0C:C3:60:CB:C6:91:0A:90:E4:0G:91:BE:3B:A6:D7:5B:C3:7B:8A:0F
my_root_ca, Oct 10, 2019, trustedCertEntry,
Certificate fingerprint (SHA1): 6C:23:89:FA:A8:E5:7D:E1:45:BE:75:84:15:E8:D8:41:73:59:FD:19

一切正常。

几天前,文件中的中间 CA 证书已过期。我后来得到了新的更新的中间 CA 证书。

现在,问题是 - 如何将密钥库文件中过期的中间 CA 证书替换为新证书?

我知道我可以使用 keytool -delete 和 -import 选项来删除并重新导入中间 CA my_ssl_ca_v2_b。

但是,如何替换密钥库文件中 PrivateKeyEntry(别名 tomcat)中的中间 CA 证书,如下所示?

**Alias name: tomcat**
Creation date: Oct 10, 2019
Entry type: PrivateKeyEntry
Certificate chain length: 3
Certificate[1]:
...
...
Certificate[2]:
Owner: CN=My SSL CA v2 - A, O=eBay Inc, C=US
Issuer: CN=My Root CA, O=eBay Inc, C=us
Serial number: 6800000004b4491dd58df45b9b000000000004
**Valid from: Wed Oct 14 18:35:33 UTC 2015 until: Wed Oct 14 18:45:33 UTC 2020**
...
...
Certificate[3]:
Owner: CN=My Root CA, O=eBay Inc, C=us
Issuer: CN=My Root CA, O=eBay Inc, C=us
Serial number: 4500888247008e884cd02d71a035810e

我不能使用 keytool -delete 和 -import 选项来删除并重新导入带有 End Cert 文件的别名 tomcat,因为这也会删除私钥并且私钥永远不会回来。

您能否教我替换密钥库中的中间 CA 证书的确切步骤?非常感谢!

-六月

【问题讨论】:

    标签: java tomcat ssl-certificate keystore keytool


    【解决方案1】:

    这不是一个真正的编程或开发问题,即使您在 tomcat 上使用结果,并且可能会被关闭。

    您需要在 PEM 中按顺序创建一个包含整个链的文件——最终实体、中间和根证书。如果您还没有 PEM 中的 EE 证书,您可以使用 keytool -export[cert] -keystore ksfile -alias tomcat -rfc -file eecert 提取它。显然,您拥有刚刚获得的新中间证书,如果您还没有根(并且它没有更改),也可以导出它。您可以将文件与 Unix 上的 cat a b c >d 或 Windows 上的 COPY a+b+c d 组合,或使用您喜欢的任何文本编辑器。然后将其导入到 keytool -import[cert] -keystore ksfile -alias tomcat -file chainfile 之类的私钥条目中。

    【讨论】:

      猜你喜欢
      • 2013-10-27
      • 1970-01-01
      • 1970-01-01
      • 2020-11-18
      • 2019-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-09
      相关资源
      最近更新 更多