将外部服务器的自签名证书添加到我的 Tomcat 的受信任证书中

2023-12-27

我的 Tomcat 需要连接到another网络服务器(位于https://foreign.example.com https://foreign.example.com)使用 SSL (TLS)。

foreign.example.com 有一个我信任的自签名证书。当然,我的 Tomcat 默认情况下不是这样的 - 所以我必须告诉它。一种方法是:

$JRE/bin/keytool -import -alias my -file ssl-cert-myselfsigned.cer -keystore 
 $JRE/lib/security/cacerts

这有效:我的 Tomcat 允许 SSL 连接。

但是,我不喜欢这样做:它将证书导入到我的 Java 安装的受信任密钥中。我不想说:“在我的机器上运行 Java 的每个应用程序都应该信任该证书”。只有 Tomcat(或运行 Tomcat 的用户)应该信任它。

所以我尝试将其导入到 tomcat-user 的密钥库中~/.keystore,并设置 Tomcat 的<Connector>具有这些属性:

keystoreFile="${user.home}/.keystore"
keystorePass="thePassphraseICreatedTheKeystoreWith"

但是,这根本不起作用(我相信,这仅适用于我的Tomcat的服务器证书,不适用于外国服务器的服务器证书,对吗?)

我尝试了同样的方法truststoreFile/truststorePass属性,但它们也不起作用。 (属性记录在http://tomcat.apache.org/tomcat-6.0-doc/config/http.html http://tomcat.apache.org/tomcat-6.0-doc/config/http.html)

有没有办法使用外部服务器的服务器证书设置 Tomcat,或者添加一些命令行参数java这使得我的密钥库(和密钥库密码)可用于 JVM 实例?


JBoss(基于 Tomcat)可以使用以下 cmd 参数运行。 cacerts 文件(或者您想要的名称)必须包含端点的证书。

-Djavax.net.ssl.trustStore=C:\Applications\jboss-as\server\default\conf\cacerts -Djavax.net.ssl.trustStorePassword=changeit

因此这也适用于 Tomcat。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将外部服务器的自签名证书添加到我的 Tomcat 的受信任证书中 的相关文章

随机推荐