我必须向具有TLS证书和私钥的后端发出请求,在故障排除中,在服务器名称指示中使用相同的主机名时出现错误。看到:
我收到错误消息:
openssl s_client -connect endpoint.com:443-服务器名Endpoint.com
我成功了:
openssl s_client -connect endpoint.com:443 -servername another_endpoint_name.com
但是我找不到在
TLS Handshake
中的Apache Lib.
中更改服务器名称指示的方法,甚至可以吗?相关问题:How to set SNI (Server Name Indication) in TLS Handshake using Apache HttpComponents Java
最佳答案
可以使用带有解析的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());
}
关于java - 如何使用HttpComponents(Java apache lib)发出请求以更改TLS握手中的服务器名称指示,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59793862/