Tomcat 多项服务的SSL相互认证

Tomcat SSL mutual authentication for multiple services

我在 tomcat 8 上部署了一个 Web 应用程序,它使用来自两个不同系统的 Web 服务,每个系统都需要相互身份验证。现在我需要将我的应用程序与两个不同的客户端证书集成,或者我们可以说两个不同的密钥库具有不同的密码。现在我在为这两项服务使用正确的证书时遇到困难。

我正在使用我自己的代码调用其中一项服务,但第二项服务是从第三方库调用的,我无法控制其调用者代码。 如果我使用任何一个密钥库,则相应的服务调用成功但另一个失败。

我尝试了以下方法,但都失败了 -

  1. 我创建了一个新的密钥库,并在密钥库中添加了两个证书,并在环境变量中设置了“javax.net.ssl.keyStore”、“javax.net.ssl.trustStore”和相应的密码。这使得只有一个服务调用成功。
  2. 我删除了上述环境变量并使用以编程方式配置的 SSL 上下文调用了一项服务(类似于 )。这导致一项服务成功,另一项失败(很明显)。
  3. 我配置了“javax.net.ssl.keyStore”、“javax.net.ssl.trustStore”和相应的密码,其中仅包含一个服务的一个密钥,并像上一步一样以编程方式设置另一个服务的 SSLContext。这会导致在第 2 步中成功的服务失败(也许其他密钥库会覆盖它?)并导致其他服务成功。
  4. 我尝试更改密钥的密码,使它们彼此相同,也与密钥库相同。这也使一项服务失败。

有什么建议我接下来可以尝试什么,或者上述方法的实际问题是什么?

抱歉..我没有正确检查.. 方法 3 有效..