HTTPS 原理
date
Feb 3, 2022
slug
https
status
Published
tags
原理
summary
HTTPS 的交互的流程图。
type
Post
sequenceDiagram
rect rgba(213, 229, 252, .3)
loop 证书相关
Server -->> CA: 申请证书认证
CA -->> CA: 对数据的进行核验
CA -->> CA: 核验成功
CA -->> Server: 签发认证文件
Server -->> Server: 内容包含证书相关信息和 "CA 私钥生成的数字签名"
CA -->> Client: 可信的第三方机构的公钥已内置客户端, 用于验证数字签名有效性
end
end
loop 网络通信
Client ->> Server: https://www.baidu.com
Server ->> Client: 返回数字签名的公钥证书
loop 验证证书
Client ->> Client: 浏览器内置CA公钥 -> 解密 -> 对比
Note left of Client: 无效证书会显示警告信息
Client ->> Client: 有效
end
Client ->> Client: 生成随机的会话秘钥
Client ->> Client: 用 Server 的公钥加密会话秘钥
Client ->> Server: 发送加密后的会话公钥数据
Server ->> Server: 用私钥解密数据
Server ->> Server: 会话秘钥
Server ->> Server: 用会话秘钥加密明文数据
Server ->> Client: 返回加密后的数据
Client ->> Client: 用会话秘钥解密
Client ->> Client: 用会话秘钥加密明文内容
Client ->> Server: 发送密文数据
Server ->> Server: 用会话私钥解密数据
end