HTTPS 与 TLS 工作原理详解:实用指南

Security2026-10-31TryQuickToolBox

你可能在浏览器中见过那个小锁图标,知道它代表“安全”。但当你访问一个 HTTPS 网站时,实际发生了什么?你的浏览器和服务器是如何在不被窃听的情况下协商加密密钥的?如果你是开发者,理解 TLS 对于调试连接问题、配置服务器和构建安全应用至关重要。

本指南以实用角度剖析 HTTPS 和 TLS。我们将涵盖握手、证书、加密,并提供可操作的步骤来保护你自己的网站。

什么是 TLS,它与 HTTPS 有何关系?

TLS(传输层安全协议)是一种在网络中提供安全通信的密码学协议。HTTPS 简单来说就是运行在 TLS 之上的 HTTP。当你看到 https://,意味着 HTTP 流量使用 TLS 进行了加密。

TLS 确保三件事:

没有 TLS,你发送的任何数据(密码、信用卡、消息)都以明文传输,可能被拦截。

TLS 握手:分步解析

在交换任何加密数据之前,客户端和服务器会执行握手,以协商加密算法并建立共享密钥。以下是 TLS 1.3(现代标准)握手的简化版本:

  1. Client Hello:客户端发送支持的密码套件列表、一个随机值和其他参数。
  2. Server Hello:服务器选择一个密码套件,发送自己的随机值,并提供其证书。
  3. 密钥交换:使用证书的公钥,客户端和服务器(通过 Diffie-Hellman)派生出一个共享密钥。
  4. Finished:双方验证握手并开始加密应用数据。

在 TLS 1.3 中,此过程仅需一个往返,比旧版本更快。

为什么证书很重要

证书是由证书颁发机构(CA)签发的数字身份证。它们包含服务器的公钥,并由 CA 签名以证明真实性。当你的浏览器连接时,它会检查:

如果任何检查失败,你会看到警告。自签名证书适合测试,但不适用于生产环境。

TLS 中的加密:对称与非对称

TLS 同时使用非对称和对称加密:

现代 TLS 1.3 使用临时 Diffie-Hellman 进行密钥交换,提供前向保密:即使服务器的私钥后来被泄露,过去的会话仍然安全。

在你的网站上实施 HTTPS 的实用步骤

准备好保护你的网站了吗?请遵循以下步骤:

  1. 获取证书:使用 Let's Encrypt(免费)或商业 CA。
  2. 在 Web 服务器上安装证书(Nginx、Apache 等)。
  3. 配置服务器以使用强协议和密码套件。禁用 TLS 1.0/1.1 和 SSLv3。
  4. 使用 301 重定向将 HTTP 重定向到 HTTPS。
  5. 启用 HSTS(HTTP 严格传输安全)以强制浏览器使用 HTTPS。
  6. 使用 SSL Labs 的 SSL Test 等工具测试你的配置。

以下是用于 HTTPS 的 Nginx 配置示例片段:

server {
    listen 443 ssl http2;
    server_name example.com;

    ssl_certificate /path/to/fullchain.pem;
    ssl_certificate_key /path/to/privkey.pem;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256';
    ssl_prefer_server_ciphers off;

    add_header Strict-Transport-Security "max-age=63072000" always;

    location / {
        root /var/www/html;
        index index.html;
    }
}

记得自动续期证书(例如使用 Certbot)。

常见的 TLS 陷阱及如何避免

常见问题

TLS 和 SSL 有什么区别?

SSL 是 TLS 的前身。由于安全漏洞,SSL 版本已被弃用。当人们说“SSL 证书”时,通常指的是 TLS 证书。请始终使用 TLS 1.2 或 1.3。

HTTPS 如何影响性能?

现代 TLS 增加的延迟极小(TLS 1.3 中仅一个往返)。借助会话恢复和 HTTP/2,开销可以忽略不计。事实上,HTTPS 支持更快的协议,如 HTTP/2 和 Brotli 压缩。

我可以不使用 CA 颁发的证书而使用 HTTPS 吗?

你可以使用自签名证书,但浏览器会显示警告。对于公共网站,请始终使用受信任 CA 颁发的证书。Let's Encrypt 提供所有主流浏览器信任的免费证书。

需要快速检查你网站的安全头或生成安全配置?试试我们的 Nginx 日志分析器 来检查流量并确保你的 HTTPS 设置正常工作。