2015-10-26 57 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