У меня есть единственная установка Java в системе, которая запускает 2 или 3 приложения.
Все приложения используют то же время выполнения.
Есть ли способ указать другой keystores для сертификатов CA, чем тот в java_home/jre/lib/security. Таким образом, есть ли опция указать "дополнительный" keystore, который загружается и добавляется к сертификатам, загруженным из java_home/jre/lib/security/cacerts?
То, чего я хочу избежать, должно повторно импортировать наш локальный CA каждый раз, когда я обновляю jdk в поле.
Я думаю, вы хотите указать хранилище доверенных сертификатов:
java -Djavax.net.ssl.trustStore=/home/gene/mycacerts ...
Или, если вы используете сертификаты через JSSE (вероятно, используете), вы можете скопировать свой склад доверенных сертификатов в jssecacerts
в каталоге $ JAVA_HOME / jre / lib / security /
(хотя вам все равно придется делать это каждый раз при установке / переустановке JDK). JSSE Sun ищет $ 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
Согласно этому:
Java SSE Referece Guide - Customization
Вы можете использовать системное свойство:
javax.net.ssl.keyStore
Например:
java -Djavax.net.ssl.keyStore=youkeystore YourProgram
Но !! Я никогда не пробовал. Сообщите мне, если это сработает, не так ли?