HTTPS 如何建立连接 -- SSL/TLS 的建?过程
2022/8/30 23:26:17
本文主要是介绍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 的建?过程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?
- 2024-05-09企业src漏洞挖掘-有意思的命令执行