Подтвердить что ты не робот

Есть ли способ загрузить различные cacerts, чем тот, который указан в папке java_home/jre/lib/security?

У меня есть одна установка java в системе, которая запускает 2 или 3 приложения.

Все приложения используют одну и ту же среду выполнения.

Есть ли способ указать различные хранилища ключей для сертификатов ca, чем в java_home/jre/lib/security. То есть, есть ли возможность указать "дополнительное" хранилище ключей, которое загружается и добавляется в сертификаты, загруженные из java_home/jre/lib/security/cacerts?

Я хочу избежать повторного импорта нашего локального ca каждый раз, когда я обновляю jdk в поле.

4b9b3361

Ответ 1

Я думаю, вы хотите указать truststore:

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

Ответ 2

Эти оба параметра jvm используются для поиска настраиваемого хранилища доверия и их пароля.

java -Djavax.net.ssl.trustStore=custompath/cacerts -Djavax.net.ssl.trustStorePassword=changeit

Чтобы убедиться, что приложение trustStore загружается приложением, добавьте также следующий аргумент,

-Djavax.net.debug=ssl:handshake

Ответ 3

В соответствии с этим:

Руководство по рефери Java SSE - настройка

Вы можете использовать системное свойство:

javax.net.ssl.keyStore

Вроде:

java -Djavax.net.ssl.keyStore=youkeystore YourProgram

Но!! Я никогда не пробовал. Дай мне знать, если это сработает?