我正在尝试通过保留与以前相同的别名来更新服务器端密钥库中的证书,并且在此别名下实际上有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>
然后重新进口。这次它有效,但两个证书也被删除了。 我也尝试直接导入(没有删除),但是使用了一个新的别名,它确实有效,但是我不确定旧证书到期之日服务器的行为,因为这就是为什么我需要更新它。有什么建议吗?
答案 0 :(得分:0)
问题解决了。事情是我们不能只更新链中的一个证书。就我而言,三个链式证书是我将使用的证书,根CA和与此证书关联的中间CA.
我所做的是从续订的证书中导出根CA和中间CA证书,并使用带有订单根的keytool导入它们 - &gt;中间体 - &gt;更新。然后当我检查.jks文件的内容时,相应的证书已被更新。