HTTPS 原理

date
Feb 3, 2022
slug
https
status
Published
tags
原理
summary
HTTPS 的交互的流程图。
type
Post
notion image
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
notion image
 

© jianxiaoBai 2021 - 2022