Можем ли мы экспортировать сертификаты из файла JRE «cacerts» и импортировать его в более высокую версию JRE?

#java #ssl-certificate #cacerts

#java #ssl-сертификат #cacerts

Вопрос:

Я использую JRE 8u211. И у меня есть несколько сертификатов, добавленных в cacerts. Но когда я обновляю JRE до 8u261, эти сертификаты не импортируются. Итак, теперь я хочу программно экспортировать необходимые сертификаты из файла cacerts 8u211, используя псевдонимы, а затем импортировать эти сертификаты в файл cacerts 8u261.

Возможно ли это вообще или поддерживается?

Заранее спасибо.

Комментарии:

1. вы определенно можете добавлять сертификаты программно: github.com/escline/InstallCert/blob/master/InstallCert.java Однако я не пробовал извлекать их из существующего хранилища ключей.

Ответ №1:

Сертификат — это просто данные. Вы определенно можете экспортировать его в файл и импортировать эти данные в какой-либо другой файл.

Если вы просто хотите импортировать данные из одного файла truststore в другой, вы можете напрямую использовать buffer, не сохраняя данные в промежуточном файле:

 keytool.exe -importkeystore -srckeystore %JAVA_HOME%libsecuritycacerts -destkeystore yourfilepathfilename
            -deststoretype jks
            -srcstorepass changeit -deststorepass changeit
            -v -noprompt
  

Однако вы также можете выполнить эти две операции одну за другой:

  1. Для экспорта сертификата:

     keytool -export -alias alias_name -keystore path_to_keystore_file -rfc -file path_to_certificate_file
      
  2. Для импорта сертификата:

     keytool -importcert -alias alias_name -file path_to_certificate_file -keystore truststore_file
      

Подробнее об этом можно прочитать здесь, здесь и здесь .

Комментарии:

1. Вы также можете скопировать одну запись с -importkeystore помощью добавления -srcalias $name [-destalias $newname] . Официальная документация Java находится по адресу docs.oracle.com/javase/8/docs/technotes/tools/windows / … для 8 и аналогичные местоположения для других версий (эти части не изменились)