HTTPS 如何建立连接 -- SSL/TLS 的建?过程

2022/8/30 23:26:17

本文主要是介绍HTTPS 如何建立连接 -- SSL/TLS 的建?过程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

前两步:(握手阶段)

建立 SSL/TLS 协议

涉及四次通信

一、ClientHello

由客户端向服务器发起加密通信请求

内容:

  1. 客户端⽀持的 SSL/TLS 协议版本
  2. 客户端⽣产的 随机数c1 ( Client Random ) (后⾯⽤于⽣产「会话秘钥」)
  3. 客户端⽀持的 密码套件 列表

二、SeverHello

服务器收到客户端请求后,向客户端发出响应

内容:

  1. 确认 SSL/ TLS 协议版本 ( 如果浏览器不⽀持,则关闭加密通信 )
  2. 服务器⽣产的随机数s2( Server Random )(后⾯⽤于⽣产「会话秘钥」)
  3. 确认的密码套件列表
  4. 服务器的 数字证书

三、客户端回应

⾸先通过浏览器或者操作系统中的 CA 公钥,确认服务器的数字证书的真实性。

如果证书没有问题,客户端会从数字证书中取出服务器的公钥,然后使⽤它加密报⽂ 。

内容:

  1. 被服务器公钥加密的 一个随机数c3。
  2. 加密通信算法改变通知。( 表示随后的信息都将⽤「会话秘钥」加密通信 )
  3. 客户端握⼿结束通知。 (包含 之前所有内容的数据摘要,⽤来供服务端校验)

四、服务器的最后回应

至此服务器和客户端同时有三个随机数,接着就⽤双⽅协 商的加密算法,各⾃⽣成本次通信的「会话秘钥」 。

内容:

  1. 加密通信算法改变通知。( 表示随后的信息都将⽤「会话秘钥」加密通信 )
  2. 服务器握⼿结束通知 。(包含 之前所有内容的数据摘要,⽤来供客户端校验)

 


至此,整个 SSL/TLS 的握⼿阶段全部结束。接下来,客户端与服务器进⼊加密通信,就完全是使⽤普通的 HTTP 协议,只不过⽤「会话秘钥」加密内容 。



这篇关于HTTPS 如何建立连接 -- SSL/TLS 的建?过程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程