Cloudflare Pages 绑定自定义域名后 SSL 报错怎么修?

文章导读
大多数情况下,Cloudflare Pages 绑定自定义域名后出现 SSL 报错,是因为 DNS 记录尚未生效或证书正在签发中,建议先检查 Pages 后台域名状态并等待传播。
📋 目录
  1. 快速处理思路
  2. 为什么会这样
  3. DNS 记录配置示例
  4. 分步处理
  5. 怎么验证是否生效
  6. 常见坑
  7. 参考来源
A A

大多数情况下,Cloudflare Pages 绑定自定义域名后出现 SSL 报错,是因为 DNS 记录尚未生效或证书正在签发中,建议先检查 Pages 后台域名状态并等待传播。

先说结论:这类问题通常不需要手动配置证书,重点在于确认域名所有权验证和 DNS 解析状态。

  • 先确认:Pages 控制台 Custom Domains 页面是否显示 Active 或 Pending 状态
  • 先处理:核对域名 DNS 记录是否指向 Cloudflare 要求的 CNAME 或 A 记录
  • 再验证:清除本地 DNS 缓存或使用无痕模式访问测试

快速处理思路

由于 Pages 托管型服务不涉及服务器命令行操作,主要通过控制台和 DNS 排查:

  1. 登录 Cloudflare Dashboard,进入 Pages 项目。
  2. 点击 Custom Domains,查看绑定域名的状态指示灯。
  3. 若显示 Pending,通常等待一段时间即可;若显示 Error,点击查看详情。

为什么会这样

Cloudflare Pages 为自定义域名自动提供 Universal SSL 证书,不需要用户上传证书文件。报错通常由以下原因导致:

  • DNS 传播延迟:修改记录后,全球 DNS 生效需要时间,期间可能访问到旧记录或无法解析。
  • 证书签发中:Cloudflare 需要验证域名所有权后才能签发证书,验证未完成前 HTTPS 会报错。
  • 域名冲突:该域名可能已经绑定在另一个 Cloudflare 账户或项目中,导致验证失败。

DNS 记录配置示例

以下是 Cloudflare Pages 绑定自定义域名所需的标准 DNS 记录配置,请根据你的域名服务商后台进行添加:

Cloudflare Pages 绑定自定义域名后 SSL 报错怎么修?
Type Name Content TTL Proxy Status
CNAME www (或 @) your-project.pages.dev Auto Proxied (若托管在 CF)

注意:若域名 DNS 托管在 Cloudflare,记录默认会自动代理(橙色云朵);若使用外部 DNS 服务商,只需确保 CNAME 解析生效,无需关心代理状态。

分步处理

第一步:检查 Pages 后台状态

在 Pages 项目的 Custom Domains 列表里,观察域名右侧的状态。如果是 Pending Ownership Verification,需要按要求添加 TXT 记录或确认 CNAME 指向。如果是 Pending SSL,说明 DNS 已通,正在申请证书。

第二步:核对 DNS 记录

Cloudflare Pages 绑定自定义域名后 SSL 报错怎么修?

在你的域名 DNS 服务商处,确保自定义域名(如 www.example.com)的 CNAME 记录指向了 Pages 提供的子域名(如 your-project.pages.dev)。参考上方配置表示例,确保记录值无误。

第三步:检查 SSL/TLS 加密模式(仅当域名同时作为 Cloudflare Zone 管理时)

如果该域名本身就是一个 Cloudflare Site,进入 SSL/TLS 设置,确保加密模式至少为 Full。Pages 托管的内容通常要求 Full 或 Full (Strict),避免设置为 Off 或 Flexible 导致重定向循环或证书错误。

Cloudflare Pages 绑定自定义域名后 SSL 报错怎么修?

怎么验证是否生效

使用命令行工具 curl 和 dig 检查响应头及 DNS 解析,配合本地浏览器测试:

curl -vI https://your-custom-domain.com

dig your-custom-domain.com

观察 curl 输出中是否有 SSL certificate verify ok 以及 HTTP 状态码是否为 200。dig 命令应返回正确的 CNAME 指向。同时在浏览器无痕窗口访问,确认没有以下报错:

  • ERR_SSL_VERSION_OR_CIPHER_MISMATCH
  • SSL_ERROR_RX_RECORD_TOO_LONG
  • NET::ERR_CERT_AUTHORITY_INVALID

常见坑

  • 域名已被占用:如果提示域名已存在,需先从原账户解绑,不能强行绑定。
  • 混合内容报错:页面加载了 HTTP 资源,虽然 SSL 握手成功,但浏览器可能显示不安全。
  • 本地缓存干扰:浏览器或本地 DNS 缓存了旧的错误证书,尝试更换网络或清除缓存。
  • 根域名绑定:根域名(@)通常需要使用 A 记录指向特定 IP 或配合 CNAME Flattening,直接 CNAME 可能不生效。

参考来源

  • Cloudflare Docs, "Custom domains", https://developers.cloudflare.com/pages/configuration/custom-domains/
  • Cloudflare Docs, "SSL/TLS", https://developers.cloudflare.com/ssl/