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