与Tomcat进行双向SSL通信

时间:2016-11-08 11:52:55

标签: java ssl

我们的系统使用的提供商为我们提供了名为 MM_Base64.cer 的证书。我们的密钥库是 mitkeystore 。我们正在使用我们的密钥库:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
              maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
              clientAuth="false" sslProtocol="TLS" keystoreFile="path\mitkeystore" keystorePass="ourpass" />

我们将他们的密钥导入我们的JDK和JVM,如下所示:

keytool -import -file "path\MM_Base64.cer" -keystore "C:\Program Files\Java\jre7\lib\security\cacerts"

仍然存在握手问题。

我在看this question。看起来很复杂。我们的问题是否像他们一样复杂?是否有一种简单的方法可以让我们的系统与提供商的系统协同工作?

2 个答案:

答案 0 :(得分:3)

我可能错了,但我认为您必须将提供商的证书导入信任商店。有关keystore vs trustore的说明,请参阅here。然后,您必须将tomcat指向server.xml内http连接器配置块中的信任存储文件。

这个想法是,当SSL握手发生时,您提供商提供其证书并知道它是否可信,tomcat使用信任库来查找该证书或证书颁发机构的信息。

答案 1 :(得分:2)

我同意Borys Zibrov关于truststore的观点。 https://www.mulesoft.com/tcat/tomcat-ssl是ssl设置的一个很好的链接。

除了关于truststore的观点之外,我注意到您将证书导入到jdk的密钥库中,但使用自定义密钥库(mitkeystore)作为keystoreFile。你有没有把它加载到mitkeystore的原因? (这实际上应该是一个评论,但我没有足够的声誉,所以请耐心等待。)