Миграция Apache HTTP-клиента 5 с версии 5.3 на версию 5.4. Доверие ко всем хостам и замена устаревших сертификатов.Apache

Ответить Пред. темаСлед. тема
Anonymous
 Миграция Apache HTTP-клиента 5 с версии 5.3 на версию 5.4. Доверие ко всем хостам и замена устаревших сертификатов.

Сообщение Anonymous »

Я обновил http-клиент Apache 5.3.x до 5.4.x.
Приведенный ниже код работает нормально

Код: Выделить всё

var sslContext = SSLContexts.custom()
.loadTrustMaterial(null, TrustAllStrategy.INSTANCE)
.build();

SSLConnectionSocketFactory sslConnSocketFactory =
SSLConnectionSocketFactoryBuilder.create()
.setHostnameVerifier(NoopHostnameVerifier.INSTANCE)
.setSslContext(sslContext)
.build();

var connectionManager = PoolingHttpClientConnectionManagerBuilder.create()
.setSSLSocketFactory(sslConnSocketFactory)
.build();

CloseableHttpClient client = HttpClientBuilder.create()
.setConnectionManager(connectionManager)
.build();

HttpGet httpGet = new HttpGet("https://mms.nw.ru/");
HttpHost host = RoutingSupport.determineHost(httpGet);
ClassicHttpResponse response = client.executeOpen(host, httpGet, null);
Assertions.assertEquals(200, response.getCode());
Но класс SSLConnectionSocketFactory и метод setSSLSocketFactory PoolingHttpClientConnectionManagerBuilder устарели.
Я изменил код

Код: Выделить всё

var sslContext = SSLContexts.custom()
.loadTrustMaterial(null, TrustAllStrategy.INSTANCE)
.build();

var tlsStrategy = ClientTlsStrategyBuilder.create()
.setSslContext(sslContext)
.setHostnameVerifier(NoopHostnameVerifier.INSTANCE)
.build();

var connectionManager = PoolingHttpClientConnectionManagerBuilder.create()
.setTlsSocketStrategy((TlsSocketStrategy) tlsStrategy)
.build();

CloseableHttpClient client = HttpClientBuilder.create()
.setConnectionManager(connectionManager)
.build();

HttpGet httpGet = new HttpGet("https://mms.nw.ru/");
HttpHost host = RoutingSupport.determineHost(httpGet);
ClassicHttpResponse response = client.executeOpen(host, httpGet, null);
Assertions.assertEquals(200, response.getCode());
Он выдает исключение javax.net.ssl.SSLHandshakeException: имя, соответствующее mms.nw.ru, не найдено причина java.security.cert.CertificateException: имя, соответствующее mms.nw, не найдено. ru нашел.
Что не так?

Подробнее здесь: https://stackoverflow.com/questions/792 ... rtificates
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Apache»