ArcLibrary

HTTPS 与 TLS(基础)

在 HTTP 外面套一层加密 —— 防止运营商窥探和篡改。

HTTPSTLS加密
核心 · Key Idea

一句话HTTPS = HTTP over TLS。TLS 在 TCP 和 HTTP 之间加一层加密 + 身份认证 + 完整性校验,让运营商 / 公共 Wi-Fi 都看不到你的请求内容、改不了响应。

是什么#

HTTP:   [TCP]────[HTTP 明文]
HTTPS:  [TCP]────[TLS 加密]────[HTTP]

TCP 握手完之后,TLS 还要再握一次手:交换密钥、验证证书、协商算法 —— 之后双向通信都被对称加密。

打个比方#

打个比方 · Analogy

HTTP 像明信片,邮递员路上谁都能瞄一眼。HTTPS 像保险箱:双方先线下交换钥匙(TLS 握手),之后所有信都锁在箱子里寄出去 —— 路上的人只看到锁着的箱子,不知道里面是什么。

关键概念#

证书Certificate
X.509 文件,包含域名、公钥、签发者。证明「这个公钥确实属于这个域名」。
CACertificate Authority
证书签发机构。浏览器内置受信 CA 列表(Let's Encrypt、DigiCert 等)。
对称密钥Symmetric Key
握手后协商出的会话密钥,加密 / 解密都用它,速度快。
非对称密钥Asymmetric Key
公钥 + 私钥。用于握手阶段安全地协商对称密钥。
SNIServer Name Indication
TLS 握手时客户端告诉服务器要访问哪个域名 —— 同一 IP 多证书的关键。
HSTSHTTP Strict Transport Security
服务器告诉浏览器「以后只准用 HTTPS 访问我」。

怎么工作#

TLS 1.3 把握手压缩到一来回(1-RTT),还能 0-RTT 复用 —— 大幅提速

实操要点#

  • Let's Encrypt + ACME:免费签发证书,90 天自动续期。Caddy / Traefik 内置自动化,nginx 配 certbot。
  • 证书过期是事故第一名:监控提前 7 天 / 14 天告警。
  • curl -v https://...:看 TLS 握手版本、cipher、证书。
  • openssl s_client -connect host:443 -servername host:debug 证书 / SNI 问题。
  • 混合内容:HTTPS 页面里加载 HTTP 资源会被浏览器拦掉。全站 HTTPS才能避免。
  • HSTS preload:把域名提交到浏览器内置列表,强制 HTTPS 永久生效。

易混点#

HTTPS
只加密**单条 HTTP 连接**。
SNI / IP 仍然暴露。
VPN
把**所有**流量打包加密发到 VPN 服务器。
运营商只看到你连了 VPN。

延伸阅读#