Cloudflare 免费 SSL 证书与兼容端口列表科普
一、Cloudflare 的"免费 SSL"到底是什么
很多人第一次用 Cloudflare 时会有个误解:以为域名接入 Cloudflare 后自动获得的那把"小锁"证书,是自己网站真正的 HTTPS 证书。其实不完全是这样,Cloudflare 的免费 SSL 分为两段,理解这两段是排查证书问题的关键。
1. 边缘证书(Edge Certificate)------ 浏览器和 Cloudflare 之间
这是 Cloudflare 免费送给所有用户(包括 Free 套餐)的证书,覆盖的是"用户浏览器 ↔ Cloudflare 节点"这一段连接。开启 DNS 记录的橙色云朵代理(Proxy)后,Cloudflare 会自动签发一张通配符证书 (如 *.yaoqinqin.cn 和 yaoqinqin.cn),签发机构通常是 Google Trust Services 或 Let's Encrypt,几分钟到几小时内自动生效,无需手动申请。
2. 源站证书(Origin Certificate)------ Cloudflare 和你服务器之间
这一段是"Cloudflare 节点 ↔ 你的源站服务器"。默认情况下,如果你的源站没有配置证书,Cloudflare 到源站这段可能是明文 HTTP(取决于 SSL/TLS 加密模式的设置),存在被中间人窃听的风险。为了让这段也加密,Cloudflare 提供免费的 Origin CA 证书,有效期最长 15 年,专门装在你的源站 Nginx/Apache 上,只被 Cloudflare 信任,不能直接给终端用户浏览器验证(所以不能脱离 Cloudflare 单独用)。
3. 对应的四种加密模式
在 Cloudflare 的 SSL/TLS 设置里,可以选择:
| 模式 | 浏览器↔CF | CF↔源站 | 安全性 |
|---|---|---|---|
| Off | 不加密 | 不加密 | 极不推荐 |
| Flexible | HTTPS | HTTP(明文) | 有风险,仅源站无法配证书时用 |
| Full | HTTPS | HTTPS(不验证源站证书真实性) | 一般 |
| Full (strict) | HTTPS | HTTPS(验证源站证书) | 推荐,配合 Origin CA 证书使用 |
如果你的 Nginx 已经像前面配置的那样装了正规证书(Let's Encrypt 或 Origin CA),建议直接用 Full (strict),这是目前推荐的最佳实践。
二、Cloudflare 代理默认支持的端口
这是很多人踩坑的地方:开启橙色云朵代理后,并不是所有端口都会被 Cloudflare 转发,只有下面这些"白名单"端口才会正常代理流量。
HTTP 端口(走 80/8080 这类,未加密)
80 8080 8880 2052 2082 2086 2095
HTTPS 端口(走 443 这类,加密)
443 2053 2083 2087 2096 8443
关于缓存
需要注意,除了 80 和 443 之外的其余端口(2052/2053/2082/2083/2086/2087/2095/2096/8880/8443),Cloudflare 虽然会代理流量,但默认不启用缓存(企业版可以通过 Cache Rule 单独开启)。
三、如果你的服务不在这些端口上怎么办
假设你的源站服务跑在 8443 之外的端口,比如 9000、22(SSH)这种非白名单端口,Cloudflare 代理是不会转发的,此时有两个思路:
- 灰色云朵(DNS Only):把该子域名的代理状态改成"仅 DNS",流量不经过 Cloudflare,直接打到你的服务器公网 IP。缺点是暴露了源站真实 IP,也失去了 CDN/WAF 防护。
- Spectrum:Cloudflare 的付费功能(企业版),可以代理任意 TCP/UDP 端口,保留 CDN 和 DDoS 防护能力,但免费版用不了。
结合你之前配置的 Nginx,如果 8443 这个端口是给内部服务用的(不走 Cloudflare 代理),完全没问题;但如果你希望它走 Cloudflare 的 CDN/防护能力,8443 恰好在支持列表里,可以放心开代理。
四、国内接入的特殊限制
如果你的域名在 Cloudflare 后台开启了 China Network(中国网络) (通常需要企业版套餐并完成备案),那么在国内数据中心节点上,只支持 80 和 443 两个端口,前面提到的其它备用端口(2052、8443 等)在国内节点上不生效。这也是为什么很多国内站长直接用境外节点、走标准的 80/443,反而更省心。
五、常见排查场景对照表
| 现象 | 可能原因 |
|---|---|
| 换了非标准端口后网站打不开 | 该端口不在 Cloudflare 支持列表内,被静默丢弃 |
| 证书报错 "NET::ERR_CERT_COMMON_NAME_INVALID" | 边缘证书 SAN 不包含该子域名,或用了错误的自定义证书 |
| Cloudflare 显示已连接但源站超时 | 加密模式设为 Full/Full strict,但源站没装证书或证书不受信任 |
| 部分端口访问慢/不走 CDN 加速 | 端口在"支持但不缓存"名单中,属预期行为 |
| 国内访问正常,国外访问异常(或反之) | 检查是否开启了 China Network,节点端口策略不同 |
小结
- Cloudflare 免费 SSL 实际是边缘证书 + 源站证书两段式架构,配合 Full (strict) 模式最安全。
- 只有固定的几个 HTTP/HTTPS 端口会被代理(80/8080/8880/2052/2082/2086/2095 和 443/2053/2083/2087/2096/8443),超出范围要么用灰色云朵直连,要么上 Spectrum。
- 国内备案域名走 China Network 时,只能用 80/443。
以上信息来自 Cloudflare 官方文档(Network ports 页面),配置前建议以官方最新页面为准,端口策略可能随产品迭代调整。