Как сделать запрос с помощью HttpComponents (Java apache lib), изменяющих указание имени сервера в TLS Handshake - PullRequest
0 голосов
/ 17 января 2020

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

Я получил ОШИБКУ:

openssl s_client -connect endpoint.com:443 -servername endpoint.com

Я получил УСПЕХ:

openssl s_client -connect endpoint.com:443 -servername another_endpoint_name.com

Но я не могу найти способ изменить указание имени сервера в TLS Handshake в Apache Lib. Возможно ли это?

Смежный вопрос: Как установите SNI (указание имени сервера) в TLS Handshake, используя Apache HttpComponents Java

1 Ответ

0 голосов
/ 18 января 2020

Можно создать собственный маршрут запроса, используя HttpHost с разрешенным InetAddress.

Попробуйте этот код и дайте мне знать, если это поможет.

CloseableHttpClient httpClient = HttpClients.createSystem();
HttpHost host = new HttpHost(InetAddress.getByName("endpoint.com"), "another_endpoint_name.com", -1, "https");
try (CloseableHttpResponse response = httpClient.execute(host, new HttpGet("https://another_endpoint_name.com/stuff"))) {
    System.out.println(response.getStatusLine());
    EntityUtils.consume(response.getEntity());
}
...