Я написал клиент веб-сервиса и теперь не могу запустить его через https. Хотя я импортировал cert.pfx(alias=cert) в javas cacerts и успешно добавил запись с псевдонимом сертификатов.
Тем не менее я не могу использовать приглашение wsimport для URL-адреса wsdl. Пишет: Не удалось построить путь PKIX, не удалось найти допустимый путь сертификации к запрошенной цели. Ну ладно. Поэтому я немного исследовал и попытался установить его с помощью
setlocal set _JAVA_OPTIONS=%_JAVA_OPTIONS%
-Djavax.net.ssl.trustStore="C:\Program Files\Java\jdk1.7.0_79\jre\lib\security\cacerts"
-Djavax.net.ssl.trustStorePassword=changeit -Djavax.net.ssl.keyStoreType=PKCS12 -Djavax.net.ssl.keyStorePassword=xxxxxxxxx -Djavax.net.ssl.keyStore="d:\cert.pfx" "C:\Program Files\Java\jdk1.7.0_79\bin\wsimport" -s C:\Users\me\keystore\bin\s
-keep https://service.xxxxxxxxxxx.de/xxxxxxxxxxxxTest?wsdl endlocal
безуспешно.
Я также попытался экспортировать сертификат из файла cert.pfx, а затем импортировать сертификат в cacerts с помощью keytool -exportcert и keytool -importcert. Позже я попытался экспортировать сертификаты из своего браузера (потому что мой браузер отлично обрабатывает сертификаты и может получить доступ к URL-адресу https). Я экспортировал корневой сертификат в файл root.cer и импортировал этот .cer в свои cacerts (мне пришлось использовать псевдоним, отличный от сертификата. С сертификатом в качестве псевдонима я получил сообщение «Ключи не совпадают» в консоли при использовании приглашения keytool) .
Дамп на cacerts показывает, что запись в cacerts действительно есть. Я не понимаю, почему java отказывается выполнять wsimport для URL-адреса.
В конце концов, я просто загрузил URL-адрес назначения на свою машину и сделал wsimport для загруженного .xml-файла, а затем изменил параметры URL-адреса в сгенерированных заглушках. Однако это не помогает, потому что, когда я запускаю приложение, я запускаю PKIX... не могу найти действительный путь сертификации для запрошенной целевой ошибки.