0

情况如下:

  1. 我们的应用程序与多个 3rd 方应用程序对话,其中很少有人需要客户端身份验证。

  2. 一个特定的第三方应用程序需要客户端身份验证,并且已经适当地提供了证书(我们在我们的密钥库 (JKS) 中导入了这些证书)。这是在集成测试期间。在测试环境中一切正常。

  3. 现在在上线之前,他们想要升级 CA 颁发的证书。

  4. 对于新证书,我们总是可以创建一个新的存储,但是为了方便想知道两个证书(旧的和新的)是否可以驻留在同一个存储中?(这样万一他们回滚,我们这边就没有变化

  5. URL 相同,应用程序(http-client 库)如何知道在调用服务器时要呈现哪个客户端证书版本?

4

1 回答 1

1

您可以在信任库中拥有这两个证书。JSSE 将选择与服务器在请求客户端证书时建议的可信 CA 匹配的任何一个。

但是,您描述的场景根本不安全。如果您是客户,您应该提供自己的客户证书,而不是来自其他人的证书。否则,私钥肯定会受到损害,这意味着证书不能用于其预期目的,并且您可以合法地拒绝所有通过这种方式进行身份验证的交易。这种方案下的客户端身份验证没有任何用处,您不应该在上面浪费更多时间。

于 2016-10-17T03:40:12.637 回答