SSL:客户端身份验证,同一商店中的多个证书版本

SSL: Client Authentication, multiple certificate version in same store

情况如下:

  1. 我们的应用程序与多个第 3 方应用程序通信,其中很少需要客户端身份验证。

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

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

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

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

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

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