Почему в java есть файлы cacerts и jssecacerts? - PullRequest
46 голосов
/ 19 апреля 2011

Я серьезно запутался в различиях между cacerts и jssecacerts файлами.

Я знаю, что по умолчанию java ищет файл jssecacerts, а затем файл cacerts.

Но какой смысл в файле jssecacerts?

Насколько я понимаю, если необходимо использовать новое хранилище доверенных сертификатов, необходимо создать копию cacerts и добавить в нее все новые доверенные центры сертификации. На копию cacerts (с новыми ЦС) должно ссылаться системное свойство -Djavax.net.ssl.trustStore. Таким образом, другие java-приложения, работающие на этом компьютере, не будут случайно доверять центрам сертификации не по умолчанию.

Ответы [ 3 ]

32 голосов
/ 05 июня 2013

С Справочное руководство по Java ™ Secure Socket Extension (JSSE) , TrustManagerFactory использует следующие шаги для поиска материала доверия:

  1. системное свойство javax.net.ssl.trustStore
  2. java-home/lib/security/jssecacerts
  3. java-home/lib/security/cacerts (поставляется по умолчанию)

Я думаю, что это основано на соглашении над концепцией конфигурации. Без дополнительных усилий по кодированию будет использоваться cacert. Для дополнительных частных сертификатов CA / Signing разработчик может использовать первый или второй способ, где первый может содержать только определенный сертификат, но позже содержит список сертификатов.

13 голосов
/ 21 апреля 2011

Насколько я понимаю, cacerts - это файл по умолчанию.

Если существует файл jssecacerts, он используется исключительно - не в дополнение к файлу cacerts.

Моя рекомендация: сохраните файл cacerts, скопируйте в jssecacerts и добавьте все необходимые сертификаты CA / Signing, необходимые для файла jssecacerts.

4 голосов
/ 19 апреля 2011

Хороший вопрос. Я думаю, это вытекает из исторического факта, что JSSE когда-то была надстройкой. JSSE допускает использование нескольких провайдеров, поэтому, возможно, jssecacerts только для провайдера JSSE, а другие провайдеры могут использовать своих.

Но кто использовал Cacerts до JSSE, это другой вопрос.

...