繁体   English   中英

Java 为 HttpsURLConnection 使用 SSLContext

[英]Java use SSLContext for HttpsURLConnection

寻找使用 SSLContext 打开 HttpsURLConnection 并限制为 TLSv1.2 的示例。 上下文是使用信任存储和信任密钥构建的,在我添加了 custom() 调用之后 - TLS 设置似乎更改为“TLS”与“TLSv1.2”

我的代码是:

SSLContext sslContext = SSLContext.getInstance("TLSv1.2");
sslContext = SSLContexts.custom()
                .loadTrustMaterial(getKeyStore(trustStoreURL, trustStorePassword), new TrustSelfSignedStrategy())
                .loadKeyMaterial(getKeyStore(keyStoreUrl, keyStorePassword), keyStorePassword.toCharArray()).build();

因此,在 custom() 之后,我在 sslContext 属性中看到了“TLS”。

为什么你只想使用一个版本,对你的服务器主机有什么限制吗? 大多数现代服务器使用向后兼容一两个版本的 TLSv1.2。 当您在创建如下套接字工厂时使用 TLSv1.2 时,

SSLSocketFactory.getInstance("TLSv1.2")

默认允许的协议为 SSL、TLS、TLSv1.1、TLSv1.2。

话虽如此,要回答您的问题,您可以使用 setEnabledProtocols 方法将 SSLSocket 设置为仅启用几个协议。 请查看此文档以获取更多信息。 完成后,您的 SSL 连接将仅允许指定的协议。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM