我在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之外的密钥存储区中,因为在卸载/更新Java时它会被删除。
答案 0 :(得分:11)
原来我错过了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"
更新:此设置与truststoreFile
的{{1}}之间的一些评论似乎有些混淆。我创建了一个blog entry来解释问题(非常详细)以及此解决方案如何解决它以及更改server.xml
的原因。