понедельник, 15 апреля 2013 г.

Добавление сертификата к jvm


При запуске Java-программы (приложения, автотеста и пр., которая работает с веб-сервисами) происходит ошибка:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: 
PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: 
unable to find valid certification path to requested target

Это означает, что используемый сертификат нужно добавить в список доверенных сертификатов jvm. Для этого нужно в консоли выполнить команду:

keytool -import -noprompt -trustcacerts -alias <alias> -file <certificate> -keystore "<path\to\java\cacerts>"
Например:
keytool -import -noprompt -trustcacerts -alias alias -file C:\\something.crt -keystore "C:\Program Files (x86)\Java\jre7\lib\security\cacerts"

Если запросит пароль, то дефолтный пароль для хранилища "changeit".

Консоль при этом надо запускать от имени администратора, иначе может возникнуть ошибка доступа к файлу cacerts Access Denied.

Просмотреть список имеющихся сертификатов можно с помощью команды:

keytool -list -v  -keystore <keystore.file> -storepass <keystore.pass>
Для просмотра списка установленных сертификатов пароль не нужен (Можно просто нажать Enter, увидев в консоли запрос пароля)

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

Отправить комментарий