Skip to main content

HTTPS的概念和原理

1. HTTPS的概念

HTTPS(HyperText Transfer Protocol Secure)是一种用于安全通信的网络协议。它是在HTTP传输的基础上通过TLS/SSL协议对传输中的数据进行加密,可有效防止数据被第三方监听、截取和篡改。

1.1. SSL/TLS

SSL(Secure Sockets Layer)即安全套接层协议,SSL协议位于TCP/IP协议与各种应用层协议之间,客户端(例如浏览器)可以验证与其连接的服务器的真实性和完整性,并使用加密来交换信息。

IETF将SSL标准化后名称被改为TLS(Transport Layer Security),即传输层安全协议,因此通常将两者并称为SSL/TLS

SSL证书采用SSL协议进行通信,是由权威机构颁发给网站的可信凭证,具有网站身份验证和加密传输的双重功能。

1.2. HTTPS的核心特点

  1. 数据加密

    • HTTPS使用SSL/TLS协议对传输的数据进行加密,防止数据在传输过程中被窃取或篡改。
    • 加密方式包括对称加密(如AES)和非对称加密(如RSA),确保数据的安全性。
  2. 身份验证

    • HTTPS通过SSL/TLS证书验证服务器的身份,确保用户访问的是真实的网站,而非钓鱼网站。
    • 证书由受信任的证书颁发机构(CA)签发,包含域名、公钥等信息。
  3. 数据完整性

    • HTTPS使用消息摘要算法(如SHA-256)确保数据在传输过程中未被篡改。

1.3. HTTPS与HTTP的区别

特性HTTPHTTPS
协议明文传输加密传输(SSL/TLS)
端口80443
安全性数据易被窃取或篡改数据加密,防止窃取和篡改
性能较快稍慢(因加密和解密开销)
SEO无优势搜索引擎优先索引HTTPS网站

1.4. 使用HTTPS加密的必要性

  • HTTPS安全传输,有效防止HTTP明文传输中的窃听、篡改、冒充和劫持风险。数据传输过程中对您的关键信息进行加密,防止类似Session ID或者Cookie内容被攻击者捕获造成的敏感信息泄露等安全隐患。
  • HTTPS是主流趋势,若坚持使用HTTP协议,除了安全会埋下隐患外,终端用户在访问网站时出现的不安全标识,也将影响用户体验。
  • 主流搜索引擎都已经对HTTPS网站进行搜索加权,使用HTTPS协议访问的网站将会得到更高的搜索排名。

2. 工作原理

2.1. HTTPS的工作原理

  1. 建立安全连接

    • 客户端(浏览器)向服务器发起HTTPS请求。
    • 服务器返回SSL/TLS证书,包含公钥和证书信息。
  2. 验证证书

    • 客户端验证证书的有效性(如是否由受信任的CA签发、是否过期等)。
  3. 密钥交换

    • 客户端生成一个随机对称密钥,用服务器的公钥加密后发送给服务器。
    • 服务器使用私钥解密,获取对称密钥。
  4. 加密通信

    • 客户端和服务器使用对称密钥加密和解密数据,进行安全通信。

2.2. 如何实现HTTPS

  1. 获取SSL/TLS证书

    • 从受信任的CA(如Let's Encrypt、DigiCert)申请证书。
  2. 配置服务器

    • 在Web服务器(如Nginx、Apache)中安装证书并启用HTTPS。
  3. 强制HTTPS

    • 配置HTTP到HTTPS的重定向,确保所有流量通过HTTPS传输。
  4. 优化与测试

    • 使用工具(如SSL Labs)测试配置,确保安全性和性能。

2.3. 全链路HTTPS加密

现在的主流网站基本上都部署了CDN加速节点以提高网站的访问速率。在访问包含CDN加速节点的网站时,当客户端向服务器发起请求时,HTTPS加密流程如下图所示:

  1. 在CDN上配置HTTPS证书,即可实现客户端和CDN节点之间请求的HTTPS加密。
  2. 在源站上配置HTTPS证书,并配置CDN节点通过HTTPS协议回源到源站服务器以实现HTTPS加密。

参考文档

https://help.aliyun.com/zh/cdn/user-guide/what-is-https-secure-acceleration?spm=5176.2020520104.console-base_help.dexternal.45a043ecXJ7KU9&scm=20140722.H_109894._.OR_help-T_cn~zh-V_1