2015-10-26 53 views
2

我傳遞的JVM參數爲-Dhttps.protocols = TLSv1,TLSv1.1,TLSv1.2。但在代碼中,我顯式獲取SSL上下文對象爲 SSLContext sc = null; sc = SSLContext.getInstance("TLS");這個Java 1.7代碼片段中的TLS版本是什麼?

請問TLS版本在這種情況下是最高版本(1.2),或我需要明確的將TLS版本

sc = SSLContext.getInstance("TLSv1.2"); 

支持TLS版本1.2

回答

1

大概不會。

According to the documentation,此設置僅用於HttpsURLConnection和URl#openStream。

https.protocols

控制由獲得https連接通過使用HttpsURLConnection的類或經由URL.openStream()操作的Java客戶端使用的協議版本。

如果您直接獲取自己的SSLContext,則可能不會諮詢該設置。

+0

對於Java8,有一個新的設置,似乎更全面:http://stackoverflow.com/questions/11504173/sslcontext-initialization'jdk.tls.client.protocols' – Thilo

+0

有沒有辦法捕捉出站流量像使用wireshark等,並確定在運行時的TLS版本? – TruckDriver

+0

...或接受和轉儲HTTPS請求的公共Web服務。 – Thilo