【发布时间】:2023-03-08 15:33:01
【问题描述】:
我正在编写一个访问远程服务器的例程。我要连接的这台服务器需要相互身份验证,因此我必须提供一个密钥库,并且在使用它的同时,我还想建立一个适当的信任库。
我可以找到很多关于如何使用keytool 创建密钥库的教程,以及让 Apache HTTP 客户端识别它的多种方法,但找不到在 Tomcat 环境中将其存储在何处以便应用程序可以找到它。不知何故,将它放在应用程序的 war 文件中对我来说似乎是个坏主意。
再次重申,这并不是为了让 Tomcat 处理入站 https 连接 - 我的管理团队为此设置了一个反向代理。我正在创建需要相互身份验证的传出 https 连接,即接受自签名目标服务器证书并提供我的服务器的自签名客户端证书。
您在 Tomcat 环境中将实际的密钥库和信任库文件存储在哪里以供 Web 应用程序使用?
【问题讨论】:
-
Java 提供的尚未满足的“适当的信任库”到底是什么意思?
-
那是题外话,但我连接到的服务提供了一个自签名证书,这是 cacert 默认不接受的。我目前“全部接受”,但他们已经打开了相互,现在我还必须提供我自己的客户端自签名,所以如果我必须为密钥库添加管道,那么我应该利用这个机会添加信任库支持好吧。首先我需要知道把这些该死的东西放在哪里。
-
据我所知,keystore文件可以在服务器可以读取的目录路径中的任何位置。在tomcat的server.xml中,您需要在连接器端口8443中指定目录路径属性 Keystorefile。
-
@Amz 用于客户端 TLS 证书的密钥库与 Tomcat 的
<Connector>配置无关。这不是 Tomcat 配置问题。
标签: java tomcat keystore apache-httpclient-4.x truststore