如果服务器不支持使用的协议,java JSSE是否实现回退?
我只是收集了一些关于java中SSL/TSL
的信息,因为我们使用netty,甚至不知道我们目前使用的是什么TLS
协议。我们的应用程序在Java7上运行,因此SSLSocket
在默认情况下将与TLS1
一起运行,并且SSL3
甚至没有被激活。我现在知道了
假设我的客户机在Java8上运行(默认情况下使用TLS1.2),目标服务器只支持TLS1.1
,那么JSSE
现在是否使用自动回退路由来协商与TLS1.1
的连接?还是我必须具体实施?如果是,我要在哪里做
我在JSSE
文档中找不到明确的观点
# 1 楼答案
没必要
TLS客户端发送它所能支持的最高版本的TLS协议。服务器回复它想要使用的TLS版本,这是服务器支持的最高版本和客户端发送的版本中的较低版本。如果客户机支持该版本,握手将继续进行。所以实际上是服务器做了回退
这都是在RFC 2246中指定的。这不是Java特有的