Я искал способ изменить версию TLS при использовании Apache HttpClient и, глядя на множество предоставленных примеров, всегда используется версия TLSv1.2
вместо TLSv1.1
.
//Set the https use TLSv1.1
private static Registry<ConnectionSocketFactory> getRegistry() throws KeyManagementException, NoSuchAlgorithmException {
SSLContext sslContext = SSLContexts.custom().build();
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext,
new String[]{"TLSv1.1"}, null, SSLConnectionSocketFactory.getDefaultHostnameVerifier());
return RegistryBuilder.<ConnectionSocketFactory>create()
.register("http", PlainConnectionSocketFactory.getSocketFactory())
.register("https", sslConnectionSocketFactory)
.build();
}
public static void main(String... args) {
try {
//Set the https use TLSv1.1
PoolingHttpClientConnectionManager clientConnectionManager = new PoolingHttpClientConnectionManager(getRegistry());
clientConnectionManager.setMaxTotal(100);
clientConnectionManager.setDefaultMaxPerRoute(20);
HttpClient client = HttpClients.custom().setConnectionManager(clientConnectionManager).build();
} catch (KeyManagementException | NoSuchAlgorithmException e) {
e.printStackTrace();
}
}
Однако после тестирования моя версия TLS по-прежнему TLSv1.2 (TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384)
, когда он отправил запрос вместо TLSv1.1
.
Спасибо.