ssl - 更新别名下的其中一个证书

ssl - Update one of the certificates under an alias

我试图通过保持与以前相同的别名来更新服务器端密钥库中的证书,在这个别名下实际上有 3 个不同的证书,我只想更新其中一个。

他们就像:

Alias name: alias
Creation date: 
Certificate chain length: 3
Certificate[1]:
Owner:......
...
Certificate[2]:
...

我首先尝试了这个:

keytool -import -trustcacerts -alias <same_as_before> -file new.cer -keystore <same_as_before>.jks

但出现异常:

keytool error: java.lang.Exception: Failed to establish chain from reply

然后我使用以下方法删除了旧别名:

keytool -delete -alias <same_as_before> -keystore <same_as_before> 

然后重新导入。这次成功了,但两个证书也被删除了。 我也尝试直接导入(不删除)但使用新的别名并且它确实有效,但我不确定服务器的行为 whtn 旧证书的到期日期,因为这就是我需要更新它的原因。有什么建议吗?

问题已解决。问题是我们不能只更新链中的一个证书。在我的例子中,三个链式证书是我将使用的证书、根 CA 和与该证书关联的中间 CA。

我所做的是从更新的证书中导出根 CA 和中间 CA 证书,并使用 keytool 以根 -> 中间 -> 更新的顺序导入它们。然后查看.jks文件的内容,对应的证书已经更新了