• HTTPS (HyperText Transfer Protocol Secure),译为:超文本传输安全协议
  • HTTPS的默认端口号是443(HTTP是80)

    SSL/TLS

  • HTTPS是在HTTP的基础上使用SSL/TLS来加密报文,对窃听和中间人攻击提供合理的防护

image.png
image.png

  • SSL/TLS也可以用在其他协议上,比如
    • FTP -> FTPS
    • SMTP -> SMTPS
  • TLS (Transport Layer Security), 译为:传输层安全性协议

    • 前身是SSL (Secure Sockets Layer),译为:安全套接层

      SSL/TLS - 工作在哪一层

      image.png

      OpenSSL

  • OpenSSL是SSL/TLS协议的开源实现

  • 常用命令
    • 生成私钥:openssl genrsa -out mj.key
    • 生成公钥:openssl rsa -in mj.key -pubout -out mj.pem
  • 可以使用OpenSSL构建一套属于自己CA,自己给自己颁发证书,称为“自签名证书”

    HTTPS的成本

  • 证书的费用

  • 加解密计算
  • 降低了访问速度
  • 有些企业的做法是:

    • 包含敏感数据的请求才使用HTTPS,其他保持使用HTTP

      HTTPS的通信过程

  • 总的可以分为3大阶段

① TCP的3次握手
② TLS的连接
③ HTTP请求和响应
image.png

TLS 1.2的连接

  • 大概是有10大步骤
  • 图片省略了中间产生的一些ACK确认

image.png