Как сохранить хранилище ключей CAcerts на Mac между обновлениями? - PullRequest
7 голосов
/ 13 декабря 2010

Mac OS X имеет хранилище ключей CA в /System/Library/Frameworks/JavaVM.framework/Home/lib/security/cacerts.Это хранилище ключей, похоже, перезаписывается каждым обновлением Java, что очень раздражает, поскольку у нас есть внутренние центры сертификации для сред разработки, тестирования…

Есть ли способ сохранить изменения хранилища ключей в Apple JSR, а теперь и в Snow LeoJSR3, также через обновления для отдельных пакетов разработчика Java (чьи JDK используют одно и то же хранилище ключей)?

Ответы [ 3 ]

5 голосов
/ 13 декабря 2010

[Это устаревшая информация - см. Ответ ниже для 10.6+]

/System/Library/Frameworks/JavaVM.framework/Home/ является символической ссылкой на Versions/CurrentJDK/Home в JavaVM.framework. Очевидно, это изменится с новой версией. Используйте полный путь (например, /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home), и он не будет меняться при каждом обновлении.

4 голосов
/ 03 мая 2012

Следующие параметры могут использоваться для указания местоположения файла cacerts для java:

-Djavax.net.ssl.trustStore=<cacerts.location>
-Djavax.net.ssl.trustStorePassword=changeit

Сделайте копию cacerts в домашнем каталоге java (с внутренними CA) и поместите его где-нибудь вваш домашний каталог.Затем укажите полный путь к расположению файла cacerts в качестве значения свойства javax.net.ssl.trustStore, указанного выше.Эта копия не будет перезаписана обновлениями Java.Пароль по умолчанию - «changeit».

Два недостатка этого подхода:

  • Ваш файл не получит никаких обновлений для файла cacerts в sdk.Это, прежде всего, проблема, если центр сертификации скомпрометирован.
  • Везде, где вам нужны пользовательские cacerts (инструменты сборки, сервер приложений и т. Д.), Эти параметры необходимо указывать.
3 голосов
/ 02 февраля 2013

В Mac OS X 10.6.8 Snow Leopard все изменилось. Теперь /System/Library/Frameworks/JavaVM.framework/Home/lib/security/cacerts является символической ссылкой на /System/Library/Java/Support/CoreDeploy.bundle/Contents/Home/lib/security/cacerts, которая не изменится при обновлении, если нам повезет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...