java - SSLv3 和 TLS(v1、v1.1 或 v1.2)能否协同工作

标签 java ssl https protocols sslv3

我尝试用不同的协议(protocol)设置客户端和服务器,并在它们之间发送一些字节。

看起来他们工作得很好。当他们意识到差异时,任何人都可以给我一些关于内部发生的事情的链接吗?像协议(protocol)谈判之类的东西? self 降级?

最佳答案

一旦确定了协议(protocol)版本,它们就无法互操作,但是有一种机制可以在握手开始时协商版本。本质上,客户端在开始握手时通告它支持的最高版本,并且服务器返回它支持的最高版本,该版本小于或等于客户端支持的版本。当然,服务器也可以根据需要禁用这些低版本(在这种情况下不会建立连接)。

TLS specification关于 Server Hello 消息中的 server_version 有这样的说法:

   server_version
      This field will contain the lower of that suggested by the client
      in the client hello and the highest supported by the server.  For
      this version of the specification, the version is 3.3.  (See
      Appendix E for details about backward compatibility.)

Appendix E.1也应该给你进一步的解释。

关于java - SSLv3 和 TLS(v1、v1.1 或 v1.2)能否协同工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25998381/

相关文章:

java - CXF和spring如何相互支持

java - 方向更改在 fragment 中获得相同的布局

java - 使用 https(SSL 的自签名证书)连接到 VPS 上的解析服务器

node.js - 如何在 webstorm 中记录来自 Node 的传出 https 请求

java - 为什么建立一个游戏项目要花这么多时间?

Java 网络摄像头 GUI 应用程序

ssl - 在 HTTPS 中运行 vue dev 服务器

ssl - 对于设置为使用 SSL 证书运行的网站,IIS 管理器中 SSL 设置的目的是什么?它们有什么作用?

php - 通过 SSL 通过 PHP PDO 连接到 MSSQL 服务器

javascript - Websocket - WSS 在视频录制中无法在 HTTPS 上工作