TLS的四次握手
由于HTTP
是明文传输,因此需要加密,于是采用TLS
的RSA
握手去实现加密传输。所以流程变为先通过TCP
的三次握手加上TLS
的四次握手建立连接。
第一次握手
客户端发送client hello
,内容包括TLS
版本号,随机数,可用于加密的协议。
第二次握手
服务器接收到客户端的消息,发送给客户端TLS
版本号,随机数,选择的协议,数字证书。这样完成了两个随机数的交换。数字证书是用于验证服务端的身份。
数字证书验证的方法是通过CA
,CA
获取数字证书后,对其进行哈希,然后将哈希值通过私钥加密公钥解密和原先的哈希值对比,如果相同则说明认证成功。
第三次握手
客户端验证完之后,再生成一个随机数,通过服务端的RSA
加密,通过Client Key Exchange
传给服务端,然后服务端通过RSA
私钥解密,于是双方都获得了三个随机数,生成密钥。再发送一个Change Cipher Spec
的消息,告诉服务端开始使用加密传输。
第四次握手
同样的,服务器也进行第三次握手的操作,开始加密传输。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!