Столкнулся с проблемой при работе с утилитой wsimport, которая служит для генерации Java-классов для Web Service Client из WSDL.

Проявляется ошибкой:

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

В моем случае, сайт имел валидный сертификат, но он не входил в список доверенных для JRE.

Первым делом, необходимо извлечь сертификат в файл, сделать это можно несколькими способами.

Первый вариант - с помощью утилиты InstallCert:

javac InstallCert.java
java InstallCert [host]:[port]
keytool -exportcert -alias [host]-1 -keystore jssecacerts -storepass changeit -file [host].cer
sudo keytool -importcert -alias [host] -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit -file [host].cer

или через браузер Google Chrome:

F12:

Далее необходимо сделать импорт полученного файла в хранилище сертификатов JRE:

keytool -import -alias $ALIAS -keystore $JAVA_HOME/jre/lib/security/cacerts -file $PATH_TO_PEM_FILE

$ALIAS - наименование сертификата, может быть любым

$JAVA_HOME - путь к JRE

$PATH_TO_PEM_FILE - путь к файлу сертификата