一天一道面试题—— HTTPS

HTTPS = HTTP + SSL + 完整性校验

证书验证

CA生成证书的指纹

  • 将持有者的公钥、用途、颁发者、有效时间打包进行哈希,得到哈希值
  • CA使用自己的私钥对哈希值进行加密,得到数字签名
  • 将数字签名添加到证书

客户端验证

  • 检查CA
  • 使用CA的公钥对数字签名进行解密,得到哈希值H1
  • 使用同样的哈希算法对信息继续哈希,得到哈希值H2
  • 对比H1和H2

密钥交换

  • 链接到服务器,服务器发送证书
  • 校验证书获取公钥
  • 生成对称密钥,使用公钥对对密钥进行加密发送给服务器
  • 服务器使用私钥进行解密,得到对称密钥
  • 之后采用对称密钥对报文进行加密通信

你可能感兴趣的:(一天一道面试题—— HTTPS)