2013-02-19 2 views
0

Может кто-нибудь сказать мне, как я могу игнорировать сертификат ssl во время вызова веб-службы. Я звоню https weburl, чтобы получить ответ api, но получаю сообщение об ошибке без аутентификации. Старые примеры не работают, поскольку некоторые из методов устарели, поэтому кто-нибудь может сказать мне/предоставить примерный код, чтобы я не получил эту ошибку.Как создать собственный менеджер доверия в java для apache httpclient library, чтобы игнорировать сертификат в apache httpclient 4.2?

Я только что узнал, что проблема связана с сертификатом. Я использую 3 участника API для БД вызывает & они имеют сертификат SSL для своего домена т.е. www.dbprovider.com (сертификат SSL является * .dbprovider.com) & они создали поддомен для нас, которые выглядят как myapp.dbprovider.com

Итак, теперь проблема нет сертификата сверстников не доступен, когда я пытаюсь ударить по команде

openssl s_client -ssl3 -showcerts -connect myapp.dbprovider.com:443 

openssl s_client -tls1 -showcerts -connect myapp.dbprovider.com:443 

Может кто-нибудь сказать мне, что я должен теперь делать с ним. Есть ли какой-либо контроль на сайте dbprovider, чтобы они могли предоставить мне какую-то конфигурацию, или мне нужно написать код, чтобы игнорировать их сертификат (но для игнорирования сертификата мы не получаем их равноправный сертификат)

ответ

0

Использовать пользовательский SSLSocketFactory, как описано здесь: http://hc.apache.org/httpcomponents-client-ga/tutorial/html/connmgmt.html#d5e512. Один такой завод, который игнорирует самоподписанные сертификаты, - EasySSLProtocolSocketFactory.

ProtocolSocketFactory factory = new EasySSLProtocolSocketFactory(); 
    try { 
    URI uri = new URI(config.getBaseUrl()); 
    int port = uri.getPort(); 
    if (port == -1) { 
     port = 443; 
    } 
    Protocol easyHttps = new Protocol(uri.getScheme(), factory, port); 
    hostConfiguration.setHost(uri.getHost(), port, easyHttps); 
    } catch (URISyntaxException e) { 
    throw new IOException("could not parse URI " + config.getBaseUrl(), e); 
    } 

Источник: http://frightanic.com/software-development/self-signed-certificates-in-apache-httpclient/

Смежные вопросы