Let’s Encrypt 和 Cloudflare 都提供免费 SSL,但工作方式根本不同。Let’s Encrypt 给你一张你拥有并控制的证书。Cloudflare 作为其 CDN 代理的一部分管理 SSL — 你的访客连接到 Cloudflare,而非直接连接你的服务器。
快速对比
| Let’s Encrypt | Cloudflare SSL | |
|---|---|---|
| 你得到什么 | 可安装在任何地方的证书文件 | 由 Cloudflare 代理管理的 SSL |
| 证书所有权 | 你拥有 | Cloudflare 拥有 |
| 私钥位置 | 你的服务器(或通过 GetHTTPS 在浏览器中) | Cloudflare 的边缘服务器 |
| 脱离 Cloudflare 可用 | ✅ | ❌ |
| 访客连接终止于 | 你的服务器 | Cloudflare 的边缘 |
| Cloudflare 能读取流量 | 否 | ⚠️ 是(设计如此) |
| 证书有效期 | 90 天(你管理) | 自动管理 |
| 通配符 | ✅ (DNS-01) | ✅ |
| 非 Web 服务(邮件、API) | ✅ | ❌(仅 HTTP/HTTPS 代理) |
| 源站到边缘加密 | N/A(直连) | 必须配置 “Full (Strict)“ |
| 配置复杂度 | 中等(需要 ACME 客户端) | 低(修改 DNS) |
| 厂商锁定 | 无 | 离开 = 失去 SSL |
两者的区别
Let’s Encrypt:你拥有证书
访客 ←──HTTPS──→ 你的服务器
(你的证书,你的私钥)
你的服务器终止 TLS 连接。你控制私钥、证书和整个证书链。证书可用于任何地方 — Nginx、Apache、Node.js、邮件服务器、负载均衡器、IoT 设备。
Cloudflare:代理模式
访客 ←──HTTPS──→ Cloudflare 边缘 ←──???──→ 你的服务器
(Cloudflare 的证书) (可能是 HTTP)
Cloudflare 位于访客和你的服务器之间。访客的加密连接在 Cloudflare 的边缘终止。然后 Cloudflare 向你的源站服务器发起单独的连接 — 可能加密也可能不加密,取决于你的设置。
“Full (Strict)” 模式 — Cloudflare 验证你的源站有有效证书(推荐) “Full” 模式 — Cloudflare 通过 HTTPS 连接源站但不验证证书 “Flexible” 模式 — ⚠️ Cloudflare 通过明文 HTTP 连接你的源站
在 “Flexible” 模式下,Cloudflare 和你服务器之间的连接是未加密的 — 该网络路径上的任何人都能读取流量。
何时使用 Let’s Encrypt
- 你需要端到端加密且由你控制
- 非 Web 服务 — 邮件服务器(SMTP/IMAP)、不在 CDN 后面的 API、数据库连接
- 注重隐私 — 你不希望第三方以明文形式看到你的流量
- 多 CDN 或无 CDN — 证书不依赖于 CDN 提供商
- 无厂商锁定 — 切换主机、CDN 或架构而不失去 SSL
何时使用 Cloudflare
- 你已经在使用 Cloudflare 做 CDN、DDoS 防护或 DNS
- 你不想管理任何证书 — Cloudflare 处理一切
- 你在虚拟主机上且无法安装证书
- DDoS 防护是首要需求 — Cloudflare 的代理吸收攻击
两全其美
许多生产环境同时使用两者:
- Cloudflare 作为 CDN/代理(访客连接到 Cloudflare)
- Let’s Encrypt 在源站服务器上(Cloudflare 用真实证书连接你的服务器)
- 将 Cloudflare 设置为 “Full (Strict)” 模式
这让你获得 Cloudflare 的 CDN 优势加上经过验证的端到端加密。使用 GetHTTPS 获取源站证书。
迁移场景
从 Cloudflare 迁移到直连 HTTPS
如果你想停止使用 Cloudflare 的代理:
- 为你的域名获取 Let’s Encrypt 证书
- 安装到你的服务器(Nginx、Apache)
- 在 Cloudflare DNS 中,将 A/AAAA 记录从”已代理”(橙色云朵)改为”仅 DNS”(灰色云朵)
- 流量现在直接到达你的服务器,使用你自己的证书
从直连 HTTPS 迁移到 Cloudflare
如果你要为现有 HTTPS 站点添加 Cloudflare:
- 将域名添加到 Cloudflare
- 更新域名服务器
- Cloudflare 自动配置 Universal SSL
- 将 SSL 模式设为 “Full (Strict)“(你已有有效的源站证书)
保留你现有的 Let’s Encrypt 证书 — 它作为 Full (Strict) 模式的源站证书。
常见问题
Cloudflare 提供的是”真正的” SSL 证书吗?
Cloudflare 为你的域名签发真正的、浏览器信任的证书 — 但它存在于 Cloudflare 的基础设施上,不在你这里。你无法下载它或在其他地方使用。如果停止使用 Cloudflare,证书就没了。要获取你拥有的可移植证书,使用 Let’s Encrypt。
Cloudflare SSL 免费吗?
是的,在免费计划中。Cloudflare 称之为 “Universal SSL”,自动覆盖你的域名和子域名。但你不是在为证书付费 — 你是在接受代理模式和 Cloudflare 能看到所有流量这一事实。
可以同时使用两者吗?
可以 — 而且如果你使用 Cloudflare,应该这样做。在源站服务器上安装 Let’s Encrypt 证书并将 Cloudflare 设为 “Full (Strict)” 模式。这确保源站到边缘的连接也是加密和验证的。完整配置指南 →
Cloudflare 能读取我的流量吗?
从设计上说,是的。Cloudflare 在其边缘终止 TLS — 流量在那里被解密用于缓存、WAF 检查和 DDoS 过滤,然后重新加密发往你的源站。这是任何反向代理的工作方式。如果这对你的使用场景不可接受(法律、合规、隐私要求),请使用 Let’s Encrypt 的直连 HTTPS。
Cloudflare 的”源站证书”是什么?
Cloudflare 提供源站 CA 证书 — 仅被 Cloudflare 信任(浏览器不直接信任)的免费证书。它们有效期长达 15 年,消除了源站连接的续签麻烦。但它们仅在你留在 Cloudflare 时有效。