问题背景 Cloudflare 分配了 .1 结尾的 IP,导致移动访问网站报错(页面全红)。 使用 SaaS 回源和优选域名后,出现 Cloudflare 525 SSL Handshake Failed 报错。 使用的是 Caddy 作为 web 服务器。 原因分析 回源域名(b.com)使用 CF 生成的 15 年证书或 ACME 申请的证书时,直接访问返回 403 Forbidden。 访问域名(a.com)使用 ACME 证书则正常,直接反代即可。 Cloudflare 上的 SSL 设置: 完全:可以不使用 ACME 证书也能工作(理论上)。 完全严格:需要回源域名证书有效(使用 CF 的 15 年证书或 ACME 证书都可以)。 配置方案 回源域名 b.com b.com { tls /crt/b.com.crt /crt/b.com.key respond "403 Forbidden" 403 log { output file /var/log/caddy/b.com.log { roll_size 50MB roll_keep 5 roll_keep_for 720h } level INFO } } 作用:回源域名仅提供 TLS 连接验证,直接返回 403,不允许外部访问。 日志记录方便排查。 访问域名 a.com a.com { tls /crt/a.com.crt /crt/a.com.key encode gzip zstd reverse_proxy 127.0.0.1:443 log { output file /var/log/caddy/a.com.log { roll_size 50MB roll_keep 5 roll_keep_for 720h } level INFO } } 作用:正常提供服务,通过反代访问容器。 启用 Gzip/Zstd 压缩优化传输性能。 日志记录方便监控。 核心解决思路 回源域名和访问域名分离 回源域名只提供 TLS,外部访问返回 403。 访问域名通过反代访问回源域名内部服务。 证书选择 a.com(访问域名)使用 ACME 证书。 b.com(回源域名)使用 CF 15 年证书或 ACME 证书均可。 Cloudflare SSL 设置匹配 完全或完全严格均可,确保回源域名证书有效。 日志记录与监控 回源和访问域名均配置详细日志,方便排查 525/403 错误。 ✅ 总结: Cloudflare 525 错误主要由 回源 TLS 配置不匹配或回源域名未正确响应 引起。 解决方法是 分离回源和访问域名,确保回源域名证书有效,访问域名反代回源即可。 @Kircuz #34
1.CF里tls的设置需是完全以上,严不严格我好想用不出区别 2.nginx里的证书必须使用fullchain,且证书CA必须为CF信任的。Let's和zerossl都被信任 3.域名必须在2级以内,CF免费套餐只支持aaa.com和*.aaa.com,不支持*.*.aaa.com 4.先别弄什么优选,那是你调通了之后再去考虑的
@baiiylu #29 不是,525还在,在用cf访问的时候会加载静态(禁用缓存还是从127.0.0.1回源),但不能加载动态(如php)
@baiiylu #30 原来如此
@Kircuz #27 没看懂(
@Mr-Cheese #33 把我的帖子内容发给ai试试
@Kircuz #34
1.CF里tls的设置需是完全以上,严不严格我好想用不出区别
2.nginx里的证书必须使用fullchain,且证书CA必须为CF信任的。Let's和zerossl都被信任
3.域名必须在2级以内,CF免费套餐只支持aaa.com和*.aaa.com,不支持
*.*.aaa.com4.先别弄什么优选,那是你调通了之后再去考虑的
问题似乎解决了,我站原先用的宝塔活动送的一年证书,改成免费证书一天后恢复正常