我在 Windows 上运行 Tomcat 6,并希望 Tomcat 使用不同的信任库而不是 cacerts 来处理 Java 客户端 Web 请求。我尝试添加此设置:
-Djavax.net.ssl.trustStore="C:\ca.keystore"
注册表键值:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\Procrun 2.0\Tomcat6\Parameters\Java
不过这似乎行不通。它仍然使用 JRE cacerts 存储。我们的 Java 代码向 HTTPS 端点发出 Web 请求,我想将证书保存在 JRE 以外的 key 存储中,因为它会在卸载/更新 java 时被删除。
最佳答案
原来我丢失了 trustStorePassword
。这是解决方案:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\Procrun 2.0\Tomcat6\Parameters\Java
-Djavax.net.ssl.trustStore="C:\ca.keystore"
-Djavax.net.ssl.trustStorePassword="password"
更新:这里的一些评论似乎混淆了此设置和 server.xml
中的 truststoreFile
的作用。我创建了一个 blog entry解释问题(非常详细)以及此解决方案如何解决它以及为什么更改 server.xml
没有。
关于java - 将 Tomcat 配置为使用 cacerts 以外的信任库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5162279/