# ❓ 介绍 HTTPS 握手过程

  1. 客户端请求 https 地址向 web 服务器,请求建立 https 链接
  2. 服务器收到 https 请求,会返回包含公钥 https 证书
  3. 客户端收到网站证书后会检查证书的颁发机构以及过期时间, 如果没有问题就随机产生一个密钥
  4. 客户端通过公钥将密钥加密发送给服务端,服务端用对应的私钥解密,获得客户端生成的密钥
  5. 客户端与服务端使用密钥加密传输

# 扩展

# 对称加密和非对称加密

  • 对称加密

    加密的密钥和解密的密钥相同(对应 https 中最后双端使用的密钥)

  • 非对称加密

    非对称加密将密钥分为公钥和私钥,公钥可以公开,私钥需要保密,客户端公钥加密的数据,服务端可以通过私钥来解密

# https 解决的问题

https 很好的解决了 http 的三个缺点(被监听、被篡改、被伪装),https 不是一种新的协议,它是 http+SSL(TLS)的结合体,SSL 是一种独立协议,所以其它协议比如 smtp 等也可以跟 ssl 结合。https 改变了通信方式,它由以前的 http----->tcp,改为 http------>SSL----->tcp;https 采用了共享密钥加密+公开密钥加密的方式

  • 防监听

    数据是加密的,所以监听得到的数据是密文,也看不懂。

  • 防伪装

    伪装分为客户端伪装和服务器伪装,通信双方携带证书,证书相当于身份证,有证书就认为合法,没有证书就认为非法,证书由第三方颁布,很难伪造。

  • 防篡改

    https 对数据做了摘要,篡改数据会被感知到。