Skip to content

https 的证书验证过程是什么样的

Posted on:2024年8月14日 at 23:52

HTTPS 的证书验证过程是确保用户与服务器之间的安全通信的关键步骤。

以下是证书验证过程的详细步骤:

1. 客户端发起连接

  1. 客户端请求
    • 客户端(如浏览器)发起一个 HTTPS 请求,连接到服务器。

2. 服务器响应

  1. 服务器发送证书
    • 服务器将 SSL/TLS 证书发送给客户端。证书包含了服务器的公钥和由受信任的证书颁发机构(CA)签名的信息。

3. 客户端验证证书

  1. 验证证书链

    • 检查证书有效性
      • 客户端检查证书是否在有效期内。
    • 验证证书签名
      • 客户端使用 CA 的公钥验证证书的签名,以确保证书未被篡改。
    • 检查证书颁发机构
      • 客户端检查证书是否由受信任的 CA 颁发。浏览器内置了受信任的 CA 列表,用于验证证书的有效性。
  2. 验证证书用途

    • 检查证书用途
      • 客户端检查证书是否适用于其目的(例如服务器身份验证)。
  3. 验证域名

    • 域名匹配
      • 客户端检查证书中的域名是否与请求的域名匹配。证书中的“主体”字段(Common Name)或“主题备用名称”字段(Subject Alternative Name)应与请求的 URL 匹配。

4. 生成和交换密钥

  1. 密钥交换
    • 客户端生成密钥
      • 客户端生成一个对称密钥(Session Key),用于加密会话数据。
    • 加密密钥
      • 客户端用服务器的公钥加密生成的对称密钥,并将其发送到服务器。
    • 服务器解密密钥
      • 服务器用私钥解密客户端发送的对称密钥。

5. 加密通信

  1. 建立安全通道
    • 数据加密
      • 服务器和客户端使用对称密钥加密和解密数据,确保通信内容的机密性和完整性。
    • 数据传输
      • 所有后续的通信数据都通过加密的通道传输。

6. 完成握手

  1. 握手完成
    • 一旦安全通道建立,客户端和服务器就可以安全地交换数据,握手过程结束。
原文转自:https://fe.ecool.fun/topic/47b47141-d45d-457b-8eb9-18bcb6f47e98