我在一个运行2或3个应用程序的系统中安装了一个java.
所有应用程序都使用相同的运行时.
有没有办法为ca证书指定不同的密钥库,而不是java_home/jre/lib/security中的密钥库.也就是说,是否可以选择指定一个"额外"密钥库,该密钥库被加载并添加到从java_home/jre/lib/security/cacerts加载的证书中?
我想避免的是每次升级框中的jdk时都必须重新导入我们的本地ca.
我想你要指定信任库:
java -Djavax.net.ssl.trustStore=/home/gene/mycacerts ...
或者,如果你是通过JSSE使用证书(你可能是),您可以您的信任复制到jssecacerts
的$JAVA_HOME/jre/lib/security/
目录(虽然你仍然必须要做到这一点得到了各安装了JDK时间/重新安装).Sun的JSSE $JAVA_HOME/jre/lib/security/jssecacerts
之前 寻找$JAVA_HOME/jre/lib/security/cacerts
.
请参阅http://java.sun.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.html#X509TrustManager
这两个jvm选项用于定位自定义信任库及其密码.
java -Djavax.net.ssl.trustStore=custompath/cacerts -Djavax.net.ssl.trustStorePassword=changeit
为了确保应用程序正在加载什么trustStore,还要添加以下参数,
-Djavax.net.debug=ssl:handshake