Cloudflare SSL/TLS 完整教程:从入门到精通
本教程将带你全面了解 Cloudflare 的 SSL/TLS 功能,包括它的工作原理、不同模式的区别、如何选择最适合你的模式,以及常见问题的解决方案。

第一部分:基础知识
在开始配置之前,我们需要先理解几个核心概念。
什么是 SSL/TLS?
- SSL (Secure Sockets Layer) 和 TLS (Transport Layer Security) 是用于在互联网上加密数据传输的协议,它们就像一个加密的隧道,确保你的网站访客和你的服务器之间的数据(如密码、信用卡号、个人信息)是安全的,不会被窃听或篡改。
- 现在通常统称为 HTTPS,
S就代表 Secure(安全)。
为什么需要 SSL/TLS?
- 安全性:保护数据隐私,防止中间人攻击。
- 信任度:浏览器地址栏的锁形标志会给用户带来信任感。
- SEO 优势:Google 等搜索引擎优先索引 HTTPS 网站。
- 现代网络要求:许多现代网络功能(如 HTTP/2、Service Worker、Push Notifications)都要求 HTTPS。
Cloudflare 的 SSL/TLS 模式(核心概念)
这是 Cloudflare SSL 配置中最重要、最核心的部分,Cloudflare 提供了四种模式,每种模式都代表了不同的加密级别和信任路径。
一个关键角色:Cloudflare 证书
Cloudflare 会为你的域名免费签发一个 wildcard certificate (通配符证书),*.yourdomain.com,这个证书覆盖了你的主域名和所有子域名,这是 Cloudflare 提供免费 SSL 的基础。

第二部分:四种 SSL/TLS 模式详解
让我们逐一分析这四种模式,帮助你做出最佳选择。
Off (关闭)
- 工作原理:Cloudflare 和访客之间不加密,Cloudflare 和你的 origin server(源服务器)之间也不加密。
- 加密状态:
HTTP->HTTP - 优点:性能最高,因为没有加密/解密的开销。
- 缺点:
- 完全不安全:所有数据都是明文传输。
- 浏览器会显示“不安全”警告。
- 无法利用 Cloudflare 的其他安全功能(如 WAF、Rule Engine)。
- 适用场景:几乎不推荐用于生产环境,仅用于本地测试或调试网络连接问题。
Flexible (灵活)
- 工作原理:Cloudflare 和访客之间是加密的,但 Cloudflare 和你的源服务器之间是不加密的。
- 加密状态:
HTTPS->HTTP - 优点:对访客来说是安全的,可以解决浏览器“不安全”警告。
- 缺点:
- 存在巨大安全风险:数据从 Cloudflare 到你的服务器的这段路径是明文的,如果有人攻击你的网络或 Cloudflare 到你服务器的链路,数据就会被窃取。
- 容易受到 SSL Stripping (SSL 劫持) 攻击,攻击者可以将 HTTPS 连接降级为不安全的 HTTP 连接。
- 适用场景:强烈不推荐使用! 除非你的源服务器位于一个绝对安全的内网,且无法配置 HTTPS,对于 99.9% 这是一个危险的选择。
Full (完全)
- 工作原理:Cloudflare 和访客之间是加密的,Cloudflare 和你的源服务器之间也是加密的。
- 加密状态:
HTTPS->HTTPS - 优点:
- 端到端的加密(虽然 Cloudflare 可以解密内容以提供其服务)。
- 有效防止了数据在传输过程中被窃听。
- 避免了 SSL Stripping 攻击。
- 缺点:
- 信任问题:Cloudflare 需要使用自己的证书连接到你的服务器,如果你的服务器使用的是由公共 CA(如 Let's Encrypt, DigiCert)签发的证书,一切正常,但如果你使用的是自签名证书,浏览器会报错,因为 Cloudflare 的证书不受浏览器信任。
- 适用场景:
- 你的源服务器配置了由公共 CA 签发的有效证书。
- 这是最常用、最推荐的基础安全模式。
Full (Strict) (完全 - 严格)
- 工作原理:与
Full模式一样,两端都是加密的,但 Cloudflare 会严格验证你的源服务器证书的有效性。 - 加密状态:
HTTPS->HTTPS - 优点:
- 提供最高级别的安全性和信任度。
- 确保了你的源服务器证书是真实、有效、未过期的,并且域名匹配正确。
- 缺点:
- 配置要求高:必须确保你的源服务器:
- 有一个有效的、由公共 CA 签发的证书。
- 证书未过期。
- 证书的域名与你的源服务器主机名完全匹配。
- 如果证书有任何问题,Cloudflare 会立即断开连接,导致你的网站完全无法访问(显示 525 SSL Handshake Failed 错误)。
- 配置要求高:必须确保你的源服务器:
- 适用场景:
- 对安全性要求极高的企业级应用。
- 你的服务器配置由你完全掌控,确保证书始终有效。
- 这是最安全的模式,但也是最容易出问题的模式。
第三部分:如何选择正确的 SSL/TLS 模式?
一张图帮你快速决策:
| 你的源服务器是否配置了有效的公共 CA 证书? | 你能接受因证书问题导致网站暂时无法访问吗? | 推荐模式 |
|---|---|---|
| 否 (使用自签名证书或无证书) | N/A | Off 或 Flexible (仅限测试) |
| 是,但偶尔会忘记续期或更新 | 否 | Full (完全) |
| 是,且你有完善的证书监控和续期机制 | 是 | Full (Strict) (完全 - 严格) |
新手建议: 如果你刚开始使用 Cloudflare,并且你的源服务器有有效的 HTTPS 证书,请从 Full (完全) 模式开始,这是安全性和易用性之间最好的平衡,当你对一切都很有把握,且需要最高级别的安全时,再切换到 Full (Strict)。
第四部分:实操配置步骤
假设你已经将域名解析到 Cloudflare,并且源服务器(如 VPS、虚拟主机)已经正常运行。

步骤 1:确保源服务器有 HTTPS
在配置 Cloudflare 之前,请确保你的源服务器本身可以通过 HTTPS 访问。
- 在你的服务器上安装证书(例如使用 Let's Encrypt 的 Certbot)。
- 确保你的 Web 服务器(如 Nginx, Apache)监听 443 端口,并配置了正确的 SSL 证书。
- 在浏览器中直接访问
https://你的源服务器IP地址,确保能看到网站内容且没有证书错误。
步骤 2:在 Cloudflare 面板上配置 SSL
-
登录你的 Cloudflare 控制台。
-
选择你想要配置的域名。
-
在左侧菜单栏中,找到并点击 SSL/TLS -> Overview。
-
你会看到 "Encryption Mode"(加密模式)选项。
-
点击下拉菜单,根据我们上面的分析,选择 Full (完全) 或 Full (Strict) (完全 - 严格)。
-
点击 Save(保存)按钮。
步骤 3:强制使用 HTTPS(非常重要)
配置好 SSL 模式后,虽然可以通过 HTTPS 访问了,但用户仍然可以通过 HTTP 访问,为了确保所有流量都走加密通道,你需要强制 HTTPS。
-
在左侧菜单栏中,找到并点击 SSL/TLS -> Edge Certificates。
-
找到 Always Use HTTPS 选项。
-
将其开关打开。
-
点击 Save(保存)。
工作原理:这个功能会在 Cloudflare 边缘服务器上自动将所有 HTTP 请求重定向到 HTTPS 请求(返回 301 永久重定向状态码)。
第五部分:常见问题与故障排查
问题 1:网站无法访问,显示 "525 SSL Handshake Failed"
- 原因:你选择了 Full (Strict) 模式,但 Cloudflare 无法验证你的源服务器证书。
- 解决方案:
- 暂时将 SSL 模式降级为 Full (完全)。
- 检查你的源服务器证书:
- 是否过期? 检查证书的有效期。
- 域名是否匹配? 确保证书上的域名(如
yourdomain.com)与你在 Cloudflare 中设置的 "Origin Server"(源服务器)地址完全一致。 - 是否是公共 CA 签发? 确保证书不是自签名的。
- 修复证书问题后,再将模式切回 Full (Strict)。
问题 2:网站混合内容警告
- 原因:虽然主页面是 HTTPS,但页面中加载的一些资源(如图片、CSS、JS 文件、API 请求)是通过 HTTP 协议加载的,浏览器会因此显示不安全警告。
- 解决方案:
- 最佳实践:修改你的网站源代码,确保所有内部链接都使用
https://开头。 - Cloudflare 自动修复:Cloudflare 的 "Auto Minify" 和 "Universal SSL" 功能有时能帮助修复,但最根本的解决办法还是在源端修复。
- 使用浏览器的开发者工具 (F12) -> Network 标签页,找出哪些是混合内容,然后逐一修复。
- 最佳实践:修改你的网站源代码,确保所有内部链接都使用
问题 3:想使用自己的证书(自定义证书)
- 原因:你可能使用的是 EV 证书、多域名证书,或者有其他特殊需求。
- 解决方案:
- 在 Cloudflare 控制台,进入 SSL/TLS -> Origin Server。
- 点击 Create Origin Server,输入你的源服务器信息。
- 上传你的证书文件(
.crt或.pem)和私钥文件(.key)。 - 保存后,在 SSL/TLS -> Overview 中,将 "Minimum TLS Version" 设置为
2或更高,并将加密模式设置为 Full (Strict),Cloudflare 会优先使用你上传的证书连接到你的源服务器。
第六部分:最佳实践总结
- 首选模式:从 Full (完全) 开始,这是最安全且最省心的选择。
- 强制 HTTPS:务必开启 Always Use HTTPS 功能。
- 证书管理:在源服务器上使用 Let's Encrypt 等自动化工具管理证书,避免因忘记续期导致网站宕机。
- 性能优化:开启 Cloudflare 的 HTTP/2 和 Brotli 压缩(在 Speed -> Optimization 中),它们需要 HTTPS 才能工作。
- 定期检查:定期使用在线工具(如 SSL Labs' SSL Test)检查你的 SSL 配置得分和安全性。
通过这份教程,你应该已经能够熟练地配置和管理 Cloudflare 的 SSL/TLS 了,祝你网站安全、快速!
