Не удается получить доступ к веб-сервису по протоколу https (ssl)

У нас был веб-сервис, который недавно был открыт через https.

Когда мы пытаемся подключиться к нему через https с помощью клиента JAX-WS, он выдает следующее исключение com.sun.xml.ws.client.ClientTransportException: ошибка транспорта HTTP: java.net.ConnectException: Отказано в соединении: подключение Что обычно означает, что есть некоторая проблема с соединением через сокет. Он выдает исключение, когда мы пытаемся вызвать какую-либо операцию веб-службы с помощью клиента веб-службы. HTTP-вызов веб-сервиса работает нормально.

Самое смешное, что эта проблема возникает только тогда, когда мы развернули веб-сервис и сделали наш первый вызов для доступа к операциям с использованием протокола https. Теперь как только мы делаем http вызов, на удивление после этого даже https тоже начинает работать.

Дайте совет, если кто уже сталкивался с такой проблемой.


person Harbeer Kadian    schedule 14.05.2013    source источник


Ответы (1)


В общем случае ваш Java-клиент должен иметь ssl-сертификат в доверенном хранилище ключей.

Используйте keytool для управления сертификатами: keytool -import -trustcacerts -keystore trastedCert -storepass traustedCertPassword -noprompt -alias trastedCert -file trastedCert.cer

Вы можете добавить доверенный сертификат в свою JVM (cacerts):

keytool -import -trustcacerts -keystore cacerts -storepass traustedCertPassword -noprompt -alias trastedCert -file trastedCert.cer

or

Для сервера приложений jBoss я использую следующие параметры JAVA_OPTS:

установить JAVA_OPTS=%JAVA_OPTS% -Djavax.net.ssl.trustStore=%PATH_TO_CERT%\traustedCert -Djavax.net.ssl.trustStorePassword=traustedCertPassword

person Shurok    schedule 14.05.2013
comment
Проблема здесь не в сохранении сертификата, потому что вызовы https начинают работать нормально, как только я делаю свой первый вызов http. - person Harbeer Kadian; 14.05.2013