gpt4 book ai didi

java - 如何在 apache HttpClient 上设置 TLS 版本

转载 作者:IT老高 更新时间:2023-10-28 20:53:09 25 4
gpt4 key购买 nike

如何更改 HttpClient 上支持的 TLS 版本?

我在做:

SSLContext sslContext = SSLContext.getInstance("TLSv1.1");
sslContext.init(
keymanagers.toArray(new KeyManager[keymanagers.size()]),
null,
null);

SSLSocketFactory socketFactory = new SSLSocketFactory(sslContext, new String[]{"TLSv1.1"}, null, null);
Scheme scheme = new Scheme("https", 443, socketFactory);
SchemeRegistry schemeRegistry = new SchemeRegistry();
schemeRegistry.register(scheme);
BasicClientConnectionManager cm = new BasicClientConnectionManager(schemeRegistry);
httpClient = new DefaultHttpClient(cm);

但是当我检查创建的套接字时,它仍然说支持的协议(protocol)是 TLSv1.0、TLSv1.1 和 TLSv1.2。

实际上,对于这个特定的 HttpClient,我只是希望它停止使用 TLSv1.2。

最佳答案

解决办法是:

SSLContext sslContext = SSLContexts.custom()
.useTLS()
.build();

SSLConnectionSocketFactory f = new SSLConnectionSocketFactory(
sslContext,
new String[]{"TLSv1", "TLSv1.1"},
null,
BROWSER_COMPATIBLE_HOSTNAME_VERIFIER);

httpClient = HttpClients.custom()
.setSSLSocketFactory(f)
.build();

这需要 org.apache.httpcomponents.httpclient 4.3.x。

关于java - 如何在 apache HttpClient 上设置 TLS 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28391798/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com