HTTPS简介以及和HTTP的区别

概念

    SSL(Secure Sockets Layer):安全套接层 TSL(Transport Layer Security):传输层安全

SSL和TSL是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密保护。

    HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer):是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP+SSL/TSL
    CA(Certificate Authority 证书授权中心):它是负责管理和签发证书的第三方机构,作用是检查证书持有者身份的合法性,并签发证书,以防证书被伪造或篡改。CA实际上是一个机构,负责“证件”印制核发。就像负责颁发身份证的公安局、负责发放行驶证、驾驶证的车管所。 CA证书(数字证书):包含证书拥有者的身份信息,CA机构的签名,公钥和私钥。身份信息用于证明证书持有者的身份;CA签名用于保证身份的真实性;公钥和私钥用于通信过程中加解密,从而保证通讯信息的安全性。证书内容如下: SSL证书:是数字证书的一种,因为配置在服务器上,也称为SSL服务器证书。SSL 证书就是遵守 SSL协议,由受信任的数字证书颁发机构CA,在验证服务器身份后颁发,具有服务器身份验证和数据传输加密功能。

SSL证书是ca证书中的一种,CA是数字证书管理机构,ca机构颁发的证书类型比较多,只要是ca机构颁发的都属于ca证书,而SSL证书只是其中一种。

区别

    https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。 http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议,信息是密文传输的。 http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

HTTPS工作流程

  1. Client发起一个HTTPS(https:/demo.linianhui.dev)的请求,通过DNS服务器解析到服务器的IP地址,通过TCP三次握手,连接到Server的443(默认)端口。然后进行SSL握手,Client发送的https请求包含客户端SSL协议版本号、支持的加密算法、随机数等。
  2. Server把事先申请好的数字证书以及自己支持的加密算法、随机数等返回给客户端。
  3. Client验证公钥证书:比如是否在有效期内,证书的用途是不是匹配Client请求的站点,是不是在证书吊销列表 (Certificate Revocation List ,简称: CRL) 里面,它的上一级证书是否有效,这是一个递归的过程,直到验证到根证书(操作系统内置的Root证书或者Client内置的Root证书)。如果验证通过则继续,不通过则显示警告信息。
  4. 验证通过,Client使用伪随机数生成器生成加密数据所使用的会话密钥(使用双方都支持的加密算法生成的会话密钥),然后用证书的公钥加密这个会话密钥,发给Server。
  5. Server使用自己的私钥(private key)解密这个消息,得到会话密钥。至此,Client和Server双方都持有了相同的会话密钥。
  6. Server使用会话密钥加密“明文内容A”,发送给Client。
  7. Client使用会话密钥解密响应的密文,得到“明文内容A”。
  8. Client再次发起HTTPS的请求,使用会话密钥加密请求的“明文内容B”,然后Server使用会话密钥解密密文,得到“明文内容B”。

参考链接

经验分享 程序员 微信小程序 职场和发展