我们用下面的代码初始化我们的SSL上下文,并在Java 8上运行。
SSLContext context = SSLContext.getInstance("SSL");
由于Java 8默认使用TLSv1.2?如果我的服务器支持TLSv1.2,是否意味着上述代码会开始发送TLSv1.2请求。
想了解 "SSL "协议名是否只是一个别名,但java运行时却用默认的TLS版本开始发送请求。
更新
我对着""运行我的代码。https:/www.google.co.in"并在fiddler中找到了这个
A SSLv3-compatible ClientHello handshake was found. Fiddler extracted the parameters below.
Version: 3.3 (TLS/1.2
还有如果我把协议改成TLSv1,而TLSv1只支持1.0。然后Fiddler告诉我
A SSLv3-compatible ClientHello handshake was found. Fiddler extracted the parameters below.
Version: 3.1 (TLS/1.0)
所以,我想上面的代码用 "SSL "协议名应该可以和TLS 1.2服务器正常工作。
是的,在Java 7中,服务器端默认的TLS版本是1.2。在Java 8中,服务器端和客户端默认的TLS版本都是1.2。
由于TLS版本在两边都是向后兼容的,除非服务器严格配置到特定的版本应该不是问题。