本文主要是介绍HTTPS 如何建立连接 -- SSL/TLS 的建?过程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
前两步:(握手阶段)
建立 SSL/TLS 协议
涉及四次通信
一、ClientHello
由客户端向服务器发起加密通信请求
内容:
- 客户端⽀持的 SSL/TLS 协议版本
- 客户端⽣产的 随机数c1 ( Client Random ) (后⾯⽤于⽣产「会话秘钥」)
- 客户端⽀持的 密码套件 列表
二、SeverHello
服务器收到客户端请求后,向客户端发出响应
内容:
- 确认 SSL/ TLS 协议版本 ( 如果浏览器不⽀持,则关闭加密通信 )
- 服务器⽣产的随机数s2( Server Random )(后⾯⽤于⽣产「会话秘钥」)
- 确认的密码套件列表
- 服务器的 数字证书
三、客户端回应
⾸先通过浏览器或者操作系统中的 CA 公钥,确认服务器的数字证书的真实性。
如果证书没有问题,客户端会从数字证书中取出服务器的公钥,然后使⽤它加密报⽂ 。
内容:
- 被服务器公钥加密的 一个随机数c3。
- 加密通信算法改变通知。( 表示随后的信息都将⽤「会话秘钥」加密通信 )
- 客户端握⼿结束通知。 (包含 之前所有内容的数据摘要,⽤来供服务端校验)
四、服务器的最后回应
至此服务器和客户端同时有三个随机数,接着就⽤双⽅协 商的加密算法,各⾃⽣成本次通信的「会话秘钥」 。
内容:
- 加密通信算法改变通知。( 表示随后的信息都将⽤「会话秘钥」加密通信 )
- 服务器握⼿结束通知 。(包含 之前所有内容的数据摘要,⽤来供客户端校验)
至此,整个 SSL/TLS 的握⼿阶段全部结束。接下来,客户端与服务器进⼊加密通信,就完全是使⽤普通的 HTTP 协议,只不过⽤「会话秘钥」加密内容 。
这篇关于HTTPS 如何建立连接 -- SSL/TLS 的建?过程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!