[英]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.