Cloudflare SSL模式选哪个?
学完这篇,你能搞清楚 Cloudflare 四种 SSL/TLS 加密模式的区别,给自己网站选对那一档,并避开「重定向次数过多」和 526 错误这两个最常见的坑。
第一步:先认清四种模式到底加密了哪一段
Cloudflare 的加密模式描述的是「Cloudflare 边缘节点 → 你的源服务器」这一段怎么走,浏览器到 Cloudflare 那一段默认永远是 HTTPS。四种模式:
- 关闭(Off):全程不加密,浏览器访问 http 也能通。除了临时调试,别用。
- 灵活(Flexible):浏览器→Cloudflare 加密,Cloudflare→源站走 HTTP 明文。源站没有任何证书时才能选,安全性等于零。
- 完全(Full):两段都加密,但 Cloudflare 不校验源站证书是否有效,自签名证书、过期证书都放行。只防窃听,不防中间人。
- 完全(严格)(Full (Strict)):两段都加密,且源站证书必须是有效、未过期、域名匹配、由公开 CA 或 Cloudflare Origin CA 签发的。这是唯一推荐的选项。
第二步:在后台找到这个开关
登录 dash.cloudflare.com,在首页点进你要配置的域名,左侧菜单栏点 SSL/TLS → 概述(Overview)。页面顶部就是「SSL/TLS 加密模式」四张卡片,当前生效的那张会高亮并显示「你的 SSL/TLS 加密模式为……」。
点你要切换的那张卡片,弹出「更改 SSL/TLS 加密模式?」确认框,点 更改 即可。
注意:切换是立即生效的,但边缘节点缓存有几十秒延迟。切完别马上反复刷新页面判断,等 1 分钟再看。
第三步:按源站实际情况决定选哪个
问自己一句话:我的源服务器 443 端口上,有没有一张能通过校验的证书?
- 源站只监听 80,没有证书 → 只能先用 灵活(Flexible),然后尽快去申请证书改成完全(严格)。用 Flexible 时源站千万别开「强制 HTTPS 跳转」,否则 Cloudflare 用 HTTP 回源、源站又跳回 HTTPS,浏览器就会报 ERR_TOO_MANY_REDIRECTS。
- 源站有自签名证书 → 用 完全(Full)。
- 源站有 Let's Encrypt 等公开 CA 签发的有效证书,或者装了 Cloudflare Origin CA 证书 → 用 完全(严格)。
第四步:推荐做法——用 Origin CA 证书把源站垫起来
Cloudflare 自己签发的源站证书可以一次性签 15 年,不用折腾续期,配完全(严格)最省事。
进入 SSL/TLS → 源服务器(Origin Server),点 创建证书(Create Certificate):
- 「私钥类型」选 RSA (2048);
- 「主机名」默认会填
example.com和*.example.com,按需增减; - 「证书有效期」选 15 年;
- 点 创建,把生成的「源证书」和「私钥」复制下来,装到源站。
Nginx 上大致是这样:
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/nginx/ssl/cloudflare-origin.pem;
ssl_certificate_key /etc/nginx/ssl/cloudflare-origin.key;
# 其余配置
}
保存后 nginx -t 检查语法,再 systemctl reload nginx 重载。装完回到第二步,把模式切成 完全(严格)。
注意:Origin CA 证书只在 Cloudflare 代理开启(橙色云朵)时有效,直接访问源站 IP 会报证书不受信任,这是正常的。
第五步:顺手打开几个配套开关
都在 SSL/TLS → 边缘证书(Edge Certificates) 页面里:
- 始终使用 HTTPS(Always Use HTTPS):打开,把 http 访问 301 到 https;
- 自动 HTTPS 重写(Automatic HTTPS Rewrites):打开,自动修掉页面里的 http 混合内容;
- 最低 TLS 版本(Minimum TLS Version):改成 TLS 1.2,1.0/1.1 已经不安全。
再回到 源服务器 页面开 Authenticated Origin Pulls(经过身份验证的源站拉取),并只放行 Cloudflare 官方 IP 段访问源站 443,防止别人绕开 Cloudflare 直接打你源站。
第六步:出错了对照这几条排查
| 报错 | 原因 | 处理 |
|---|---|---|
| 重定向次数过多 | 灵活模式 + 源站强制跳 HTTPS | 改成完全(严格)或关掉源站跳转 |
| 526 | 完全(严格)但证书无效/过期/域名不匹配 | 换 Origin CA 证书 |
| 525 | 源站 443 没监听或握手失败 | 检查 nginx 是否 listen 443 |
| 页面部分资源不加载 | 混合内容 | 开自动 HTTPS 重写 |
小结
- 四种模式里默认只选「完全(严格)」,其他三种都是过渡或临时方案。
- 选之前先确认源站 443 上有证书;没有就先去 SSL/TLS → 源服务器 签一张 15 年的 Origin CA 证书。
- 灵活(Flexible)是重定向死循环的头号元凶,源站千万不要在它下面开强制 HTTPS。
- 配套打开「始终使用 HTTPS」「自动 HTTPS 重写」「最低 TLS 1.2」,再用 Authenticated Origin Pulls 锁住源站。
- 报错先看错误码:526 是证书问题,525 是握手问题,重定向循环基本都是模式选错。
原文链接:https://www.gj0.com/thread-199.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。