【发布时间】:2020-10-19 11:39:07
【问题描述】:
如何替换密钥库文件中的新中间 CA 证书?
嗨, 我在服务器上运行了一个密钥库文件以支持 Tomcat TLS/HTTPS 服务。 在这个密钥库文件中,有 3 个证书 -
- 结束证书(tomcat)
- 中间 CA 证书 (my_ssl_ca_v2_b)
- 根 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