我在tomcat 8上部署了一个Web应用程序,它使用来自两个不同系统的Web服务,每个系统都需要相互身份验证。现在我需要将我的应用程序与两个不同的客户端证书集成,或者我们可以说两个不同的密钥库使用不同的密码。现在我在使用两种服务的正确证书时遇到了困难。
我使用自己的代码调用其中一个服务,但第二个服务是从第三方库调用的,我无法控制其调用者代码。
如果我使用任何一个密钥库,则相应的服务调用成功,但其他服务调用失败。
我尝试了以下方法但在所有方法中都失败了 -
- 我创建了一个新的密钥库,并在密钥库中添加了两个证书,并在环境变量中设置了“javax.net.ssl.keyStore”,“javax.net.ssl.trustStore”和相应的密码。这使得只有一个服务呼叫成功。
- 我删除了上述环境变量,并使用编程配置的SSL上下文(类似Access Https Rest Service using Spring RestTemplate)调用了一个服务。这导致一个成功的服务和其他失败(显然)。
- 我配置了“javax.net.ssl.keyStore”,“javax.net.ssl.trustStore”和相应的密码,其中只包含一个服务的一个密钥,并按照上一步骤以编程方式设置其他服务的SSLContext。这导致在第2步中成功的服务失败(可能其他密钥库覆盖了这个?)和其他服务的成功。
- 我尝试更改密钥的密码,使它们彼此相同,也与密钥库相同。这也失败了一项服务。
醇>
我可以尝试下一步的建议或上述方法的实际问题是什么?