Https工作流程

文字描述

  • 客户端发起HTTPS请求,并发送一个客户端随机数到服务器。
  • 服务器响应,发送数字证书(含公钥信息)及一个服务器随机数给客户端。
  • 客户端验证服务器证书的有效性,提取公钥,同时生成一个预主密钥。
  • 客户端将预主密钥使用服务器的公钥加密后,连同一个新的客户端随机数,发送给服务器。
  • 服务器使用私钥解密得到预主密钥。此时,客户端和服务器都有了预主密钥和双方的随机数。
  • 双方使用预主密钥及各自的随机数生成对称会话密钥。
  • 后续通信使用这个对称密钥进行加密,保障数据安全性。

流程图理解

notion image

数字证书生成流程

  • 密钥对生成:证书申请者生成一对密钥(公钥和私钥)。
  • 创建CSR:申请者使用私钥对公钥和身份信息生成证书签名请求(CSR),并对这些信息计算数字摘要。
  • 提交CSR给CA:申请者将CSR及其它验证信息提交给证书颁发机构(CA)。
  • CA验证申请:CA对申请者提交的信息进行验证,确保其对所申请域名的控制权及身份的真实性。
  • 签发数字证书
    • CA对申请者的CSR信息(包括公钥和身份信息)计算数字摘要。
    • CA使用自己的私钥对摘要进行加密,生成数字签名。
    • CA将数字签名与申请者的公钥、身份信息等合成最终的数字证书。
  • 安装证书:申请者将从CA收到的数字证书安装到其服务器上。
注:证书包括申请者的公钥、证书颁发者信息、有效期和其他身份标识信息。

证书验证流程

  • 证书来源验证:客户端检查证书是否由可信的证书颁发机构(CA)签发,通常通过比对客户端预存的CA根证书列表完成。
  • 签名验证:使用CA的公钥解密证书中的数字签名,获取证书摘要。客户端再对证书内容计算摘要,比对两者是否一致,以验证签名的有效性和证书的未被篡改。
  • 检查证书状态:客户端可能会查询证书是否被撤销,通过证书撤销列表(CRL)或在线证书状态协议(OCSP)进行。
  • 有效期验证:确保当前日期在证书的有效期内,过期的证书不能被接受。
  • 域名匹配验证:核实证书中的域名是否与尝试连接的服务器域名一致,保障证书确实属于当前服务器。

为什么HTTPS没有完全淘汰HTTP?

  • 性能开销:HTTPS加密和解密数据需要额外的计算资源
  • 成本因素
    • 某些特殊类型的证书(如EV SSL证书),需要付费。
    • 维护HTTPS站点也需要额外的管理和技术支持成本。
  • 兼容性问题:一些旧的客户端和浏览器可能不支持HTTPS或最新的加密协议。
 
Linux常规操作一Leetcode 894. 所有可能的真二叉树
Loading...