多个服务的Tomcat SSL相互身份验证

时间:2017-08-03 15:02:01

标签: java ssl keystore tomcat8 mutual-authentication

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

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

我尝试了以下方法但在所有方法中都失败了 -

  1. 我创建了一个新的密钥库,并在密钥库中添加了两个证书,并在环境变量中设置了“javax.net.ssl.keyStore”,“javax.net.ssl.trustStore”和相应的密码。这使得只有一个服务呼叫成功。
  2. 我删除了上述环境变量,并使用编程配置的SSL上下文(类似Access Https Rest Service using Spring RestTemplate)调用了一个服务。这导致一个成功的服务和​​其他失败(显然)。
  3. 我配置了“javax.net.ssl.keyStore”,“javax.net.ssl.trustStore”和相应的密码,其中只包含一个服务的一个密钥,并按照上一步骤以编程方式设置其他服务的SSLContext。这导致在第2步中成功的服务失败(可能其他密钥库覆盖了这个?)和其他服务的成功。
  4. 我尝试更改密钥的密码,使它们彼此相同,也与密钥库相同。这也失败了一项服务。
  5. 我可以尝试下一步的建议或上述方法的实际问题是什么?

1 个答案:

答案 0 :(得分:0)

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