HttpClient + SSL + Доверенный сертификат - PullRequest
1 голос
/ 04 марта 2010

Я использую Commons HttpClient API для подключения к одному из наших Серверов.

Этот сервер использует SSL, а также использует действующий сертификат (выданный Verisign Trust Network).

Мой браузер никогда не жалуется, когда я подключаюсь к серверу. Но моя Java-программа выбрасывает

Причина: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: доверенный сертификат не найден. Исключение.

У меня все еще есть та же проблема, даже если этот действительный сертификат импортирован в мое хранилище доверенных сертификатов Java.

Я использовал следующий простой код для подключения к серверу ..

HttpClient httpclient = new HttpClient();
  GetMethod httpget = new GetMethod("https://www.ourserver.com/"); 
  try { 
    httpclient.executeMethod(httpget);
    System.out.println(httpget.getStatusLine());
  } finally {
    httpget.releaseConnection();
  }

Примечание: Я очень уверен, что наш сервер использует доверенный сертификат, так как мой браузер никогда не жаловался.

Спасибо.

Ответы [ 2 ]

1 голос
/ 04 марта 2010

Если вы используете более старую версию Java, т. Е. 1.4, возможно, что корневой CA verisign не является доверенным. В этом случае вы должны настроить склад доверенных сертификатов с сертификатом в нем. Это можно сделать с помощью системного свойства de 'javax.net.ssl.trustStore', но делать это не рекомендуется.

Вы можете реализовать 'org.apache.commons.httpclient.protocol.SecureProtocolSocketFactory', чтобы предоставить собственный SocketFactory с указанным хранилищем доверенных сертификатов.

0 голосов
/ 04 марта 2010

Вы добавили Verisign Root CA в хранилище доверенных сертификатов? Возможно, ошибка связана с тем, что центр сертификации, выдавший сертификат, не является доверенным.

Я не уверен, что хранилище доверенных сертификатов Java автоматически настроено для доверия корневым центрам сертификации по умолчанию (Verisign, Thawte и т. Д.), Как это делают большинство веб-браузеров. Возможно, вам придется вручную включить доверие для каждого использования keytool, которое, как я полагаю, вы знаете, поскольку вы упомянули об импорте в хранилище доверенных сертификатов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...