java - 将 Tomcat 配置为使用 cacerts 以外的信任库

标签 java tomcat ssl https webclient

我在 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/

相关文章:

java - 在自定义反序列化中调用标准反序列化

java - 非同步方法可以被其他线程访问

java - Tomcat:跟踪所有(甚至捕获的)异常

google-chrome - 在 https 页面上查找非 ssl 项目

Python3 MySQL SSL 错误 - mysql.connector

java - AKKA:Actor 路由器消息持久化

java - 在 Spring 上下文加载之前避免 Log4j 警告

security - 如何在 Tomcat 5.5 中实现加盐密码

java - hibernate Jndi Tomcat 错误 : Not supported by BasicDataSource

ssl - 带有通配符证书的错误 ERR_CERT_COMMON_NAME_INVALID