Tomcat [9.0.26]-调用安全服务-TrustStore与KeyStore配置差异和问题

问题描述 投票:0回答:1

[Tomcat SSL configuration在我们的stackoverflow论坛中是一个被大量询问的区域-但尽管如此,尽管Tomcat声称可以简化设置,但我仍然感到最不了解!

我正在使用Tomcat 9.0.26,并且必须使用第三方(https)Web服务。麻烦开始了:)。

  1. 首先是我对blissfull的无知和Tomcat文档的堆积。我正在尝试设置keystoreFile。经过几次尝试,才意识到密钥库和信任库之间的区别。简而言之,如果您希望通过安全的HTTPS协议为部署在tomcat服务器上的应用程序提供服务,则需要密钥库。如果您希望通过将证书存储在信任库中来使用另一个安全的HTTPs Web服务,则需要TrustStore。默认的tomcat SSL文档将引导您进入密钥库,而不是信任库。

  2. 因此请继续设置信任库

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
     maxThreads="150" scheme="https" secure="true"
     truststoreFile="C:\cert\myCert.p12" truststorePass="mypass" truststoreType="PKCS12" 
     clientAuth="false" sslProtocol="TLS+SSLV3" />
  1. 了解到SSLConfig元素已经出现,但是Tomcat 9仍然支持上面定义的旧配置。我使用SSLConfig的尝试也没有取得成果,这部分似乎很少记录。

  2. 我无法使用运行时参数,因为某些其他服务因以下参数而失败。

-Djavax.net.ssl.trustStore = C:\ cert \ myCert.p12 -Djavax.net.ssl.trustStorePassword = mypass -Djavax.net.ssl.trustStoreType = PKCS12

由于上述尝试仍未成功,因此需要有关我可以尝试解决此问题的指针的帮助。

spring ssl tomcat ssl-certificate truststore
1个回答
0
投票

最终解决了这个问题。上面对信任库的理解是正确的。但是,在SSL握手期间,我的服务器需要交换客户端身份验证“密钥”。这也是必须将同一证书存储区设置为keyStore的地方,并发布所有内容!!

-Djavax.net.ssl.trustStore = C:\ cert \ myCert.p12-Djavax.net.ssl.trustStorePassword = mypass-Djavax.net.ssl.trustStoreType = PKCS12-Djavax.net.ssl.keyStore = C:\ cert \ myCert.p12-Djavax.net.ssl.keyStorePassword = mypass

© www.soinside.com 2019 - 2024. All rights reserved.