我在一个运行2到3个应用程序的系统中安装了一个java。
所有的应用程序都使用相同的运行时。
有没有办法为ca证书指定不同于java_home/jre/lib/security中的密钥库。也就是说,是否可以指定一个“额外的”密钥库,该密钥库被加载并添加到从java_home/jre/lib/security/cacerts加载的证书中?
我想要避免的是每次升级jdk时都要重新导入我们的本地ca。
发布于 2010-04-15 22:01:49
我认为您应该指定信任库:
java -Djavax.net.ssl.trustStore=/home/gene/mycacerts ...
或者,如果您正在通过JSSE使用证书(您可能正在使用),您可以将您的信任库复制到$JAVA_HOME/jre/lib/security/
目录中的jssecacerts
(尽管每次安装/重新安装JDK时,您仍然必须这样做)。Sun的JSSE在$JAVA_HOME/jre/lib/security/cacerts
之前查找$JAVA_HOME/jre/lib/security/jssecacerts
。
请参阅http://java.sun.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.html#X509TrustManager
发布于 2017-11-07 17:32:37
这两个jvm选项都用于定位自定义信任库及其密码。
java -Djavax.net.ssl.trustStore=custompath/cacerts -Djavax.net.ssl.trustStorePassword=changeit
为了确保应用程序加载的是什么trustStore,还需要添加以下参数,
-Djavax.net.debug=ssl:handshake
发布于 2018-07-27 00:50:47
如果您的JVM包含多个应用程序,那么默认情况下,所有应用程序都将使用$JAVA_HOME/jre/lib/security/ location中的默认cacerts存储。但是,如果您希望应用程序使用不同的证书存储,那么您必须定义自定义证书存储并指向该存储。通过这种方式,您可以创建自己的证书商店。System.setProperty("javax.net.ssl.trustStore","C:/certStore/cusomtcacerts");--在创建http/https会话之前使用此行。您也可以使用keytool将证书导入到cusomtcacerts中。
https://stackoverflow.com/questions/2642046
复制相似问题