如何将 SHA1 证书作为 PrivateKeyEntry 类型而不是 trustedCertEntry 导入 Keystore

How can I import a SHA1 cert into Keystore as PrivateKeyEntry Type instead of trustedCertEntry

我有一个 Jks 文件 (key.jks),其中有别名 abc 的现有 SHA1 证书 (server.cer)。该证书已过期,我必须用新证书更新它我得到的证书。上一个条目的条目类型为 PrivateKeyEntry 。我删除了旧条目,并尝试使用 keytool 导入命令导入新证书它总是将条目类型添加为 trustedCertEntry 由于握手得到 failed.The 我正在使用的命令在下面。

keytool -import -keystore key.jks -storepass changeit -alias abc -file server.cer

如何将此证书添加为 PrivateKeyEntry 类型。我使用与旧 Certificate 相同的别名。 任何帮助非常感谢

一个PrivateKeyEntry实际上是一个有3个部分的"Key Pair"。一个私钥,一个 public 密钥和一个证书。该证书可以是自签名的或由其他实体(受信任的证书颁发机构 - CA)签名的。

A​​ trustedCertEntry 只是具有分配的 public 密钥(无私钥)的证书。

当证书过期时,您可以创建新的密钥对、证书签名请求 (csr),当 CA 颁发新证书时,您可以导入证书回复。

有时 CA 可能会为相同的 public 密钥颁发新证书,因此您只需导入回复即可。

正在导入证书(回复)——其实你第二部分做的不错。如果您导入证书并且已经存在密钥对 (PrivateKeyEntry),密钥工具会检查证书是否与 public 密钥匹配,然后用保留私钥的新证书替换旧证书。

问题是您确实删除了私钥。我希望你有备份。如果没有,我建议创建一个新的密钥对并申请一个新的证书。