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

Почему у java есть файлы cacerts и jssecacerts?

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

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

Но какова точка файла jssecacerts?

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

Как я понимаю, файл cacerts является отправленным по умолчанию.

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

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

Ответ 3

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

Но кто использовал cacerts перед JSSE, это еще один вопрос.