0

Я использую службу REST в WAS с использованием Apache HTTPClient. Это HTTPS (PKI) и Target безопасности доверяют в WAS Trust магазин и сертификат SSL и управления ключами> Управление оконечных конфигураций безопасности> Outbound> HTTP> SSLConfiguration направлен для исправления SSLConfigraiton (с помощью хранилища доверенных где цель сертификат доверен). Но, когда я вызываю целевую службу с помощью HTTP-клиента, я получаю одноранговую аутентификацию.Сервер приложений Websphere - HTTPClient - SSL Peer неаутентифицирован

Когда я иду через различные формы, я вижу предложения как точка загрузки SSLContext в коде.,

Но не каждый HTTP из связанный с моей виртуальной машины Java (WAS Server) должно быть подтверждено в моем магазине доверия (который устанавливается на БЫЛА сертификата SSL и управления ключами)

Am'I отсутствует что-то еще? Пожалуйста, предложите.

ответ

0

Для аутентификации SSL-соединений WAS представляет сертификат SSL, который является самозаверяющим сертификатом по умолчанию. В таком случае вам нужно импортировать корневой сертификат из WAS в хранилище доверия, которое используется программой HTTPClient.

Дополнительную информацию о SSL, реализованном WebSphere, можно найти в Информационном центре IBM от this link.

Чтобы ответить на ваш второй вопрос, исходящие соединения проверяются с использованием хранилища доверия WAS. В вашем случае вы используете HTTPClient для запуска службы в WAS. Это будет определено как входящее соединение с точки зрения WAS.

0

У меня был issiue слишком

я решил его с SSLSocketFactory по умолчанию. Это позволяет вашему HttpClient использовать Truststore из вашего Websphrere. Этот код предназначен для версии HttpClient версии 4.2 с новыми версиями, которые вы могли бы сделать непосредственно с классом Builder, который я думаю.

// register default SSLSocketFactory to use SSL Certificates from Websphere 
    javax.net.ssl.SSLSocketFactory wasSslFactory = (javax.net.ssl.SSLSocketFactory) javax.net.ssl.SSLSocketFactory.getDefault(); 
    org.apache.http.conn.ssl.SSLSocketFactory socketFactory = new org.apache.http.conn.ssl.SSLSocketFactory(wasSslFactory, org.apache.http.conn.ssl.SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); 
    Scheme scheme = new Scheme("https", 443, socketFactory); 
    httpClient.getConnectionManager().getSchemeRegistry().register(scheme); 
Смежные вопросы