Keytool: Импорт Сертификата — Java Certs

Если вы используете self-signed SSL-сертификат или сертификат выданный неизвестным CA (certificate authority), Java-клиент сообщит об ошибке:

SunCertPathBuilderException: unable to find valid certification path to requested target

Для ее решения с помощью команды keytool self-signed сертификат или CA-сертификат необходимо импортировать в keystore — специальное хранилище ключей и сертификатов в Java.

В этой заметке я покажу, как неинтерактивным способом импортировать сертификат в Java-keystore, с помощью команды keytool.

Я также покажу пример того, как импортировать CA-сертификат в cacerts.

Дельный Совет: Просмотр списка сертификатов в Java-keystore с помощью команды keytool -list! Читать далее →

Импорт Сертификата с помощью Keytool

Импортировать сертификат в Java-keystore:

$ keytool -import \
          -trustcacerts \
          -keystore <keystore_file_path> \
          -storepass <keystore_password> \
          -noprompt \
          -alias <certificate_alias> \
          -file <certificate_file_path>
Опция Описание
-import Импорт сертификата или цепочки сертификатов
-trustcacerts Доверять сертификатам из ‘cacerts’
-keystore <keystore_file_path> Путь к хранилищу сертификатов
-storepass <keystore_password> Пароль от хранилища сертификатов (по умолчанию: changeit)
-noprompt Не требовать ручного ввода чего-либо
-alias <certificate_alias> Alias сертификата
-file <certificate_file_path> Путь к сертификату

Импорт сертификата в Java-keystore cacerts:

$ keytool -import \
          -trustcacerts \
          -keystore $JAVA_HOME/jre/lib/security/cacerts \
          -storepass changeit \
          -noprompt \
          -alias intraca \
          -file intraca.cer