目录

HTTPS原理

HTTP和HTTPS

  • 使用HTTP协议会存在一定的安全问题,比如客户端与服务器通信的协议可以很容易被窃取,其中的私密信息会被泄漏,再比如攻击者获取到信息后,可以通过篡改其中的数据来达到攻击目的,而客户端无法对篡改的信息进行校验。
  • HTTPS协议就解决了这三个问题,HTTPS使用HTTP+SSL,达到加密数据的效果,中间人只能获取到密文,而不能真正知道报文中的内容,通信双方携带证书,证书由第三方签发,很难伪造,数据传输携带摘要,数据无法篡改。
  • https://dylanblog.oss-cn-beijing.aliyuncs.com/2019-01-06-the-process-of-HTTPS/20160812210802573

CA签发证书

  • 首先,服务方需提供公钥、组织信息或个人信息(域名)等给第三方CA机构进行证书申请。
  • CA机构会通过线上或线下多种渠道对信息进行验证,确认申请信息合法后,会向申请者签发证书。
  • 证书包含以下信息:申请者公钥、申请者的组织信息和个人信息、签发机构 CA 的信息、有效时间、证书序列号等信息的明文,同时包含一个签名。
  • 签名的产生为先对所有明文信息做散列计算,生成一个信息摘要值,之后CA使用自己的私钥对该摘要值进行加密,密文即CA的数字签名。
  • 数字证书发给服务器,当客户端请求https访问服务器资源时,服务器将该证书发给客户端。
  • 客户端上预装CA的根证书,其中包含CA的公钥,客户端先使用相同的散列算法对证书中的明文信息做散列计算,得到一个摘要值,之后使用CA公钥将证书中的签名解密,得到原本的摘要值,将两个值进行比较,若相同,则信任该证书。