配置Tomcat以使用cacerts以外的信任存储

And*_*ndi 9 java ssl https tomcat webclient

我在Windows上运行Tomcat 6,并且希望Tomcat使用除cacerts之外的其他信任存储来进行Java客户端Web请求.我尝试添加此设置:

-Djavax.net.ssl.trustStore="C:\ca.keystore"
Run Code Online (Sandbox Code Playgroud)

到密钥注册表:

 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\Procrun 2.0\Tomcat6\Parameters\Java
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用.它仍然使用JRE cacerts商店.我们的Java代码向HTTPS端点发出Web请求,并且我希望将证书保存在除JRE之外的密钥存储区中,因为在卸载/更新Java时它会被删除.

And*_*ndi 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"
Run Code Online (Sandbox Code Playgroud)

更新:这个设置和truststoreFile来自之间的一些评论似乎有些混淆server.xml.我创建了一个博客条目来解释这个问题(非常详细)以及这个解决方案如何解决它以及为什么改变server.xml不解决它.