Cloudflare Pages 绑定自定义域名后 SSL 证书验证失败,多数情况是 DNS 记录未正确指向 Pages 分配的目标地址或域名所有权验证尚未完成。操作前需确认域名未在其它 CDN 服务冲突占用,避免 DNS 解析循环导致验证阻塞。
先说结论:Cloudflare Pages 自动管理 SSL 证书,验证失败通常源于 DNS 配置错误或传播延迟,需优先检查控制台域名状态。
- 先确认 Pages 控制台 Custom Domains 页面显示的具体错误信息
- 先处理 DNS 记录,确保 CNAME 指向正确的 Pages 项目地址
- 再验证 SSL 证书状态,等待控制台显示 Active 而非 Pending
命令速用版
本场景主要依赖控制台配置与 DNS 解析,不适合纯命令操作,以下是快速处理思路:
1. 登录 Cloudflare Dashboard,进入 Pages 项目,点击 Custom domains 查看域名状态。
2. 若状态为 Pending ownership verification 或 SSL verification failed,复制目标 CNAME 地址。
3. 在域名 DNS 管理处添加 CNAME 记录,主机记录为 @ 或 www,值为 Pages 提供的目标地址。
为什么会这样
Cloudflare Pages 依赖 DNS 记录验证域名所有权后才会自动签发 SSL 证书。
Pages 服务本身不提供手动上传证书入口,完全自动化管理 HTTPS。当用户绑定自定义域名时,系统需要确认用户拥有该域名,通常通过检查 DNS 记录是否指向 Pages 基础设施来实现。如果 DNS 记录缺失、指向错误或存在 CAA 记录限制,SSL 验证流程会中断,导致浏览器访问时报错。
分步处理
1. 检查 Pages 控制台状态
进入 Cloudflare Dashboard > Workers & Pages > 选择项目 > Custom domains。查看域名旁的状态标签,若显示 Pending 或 Error,点击查看详情获取具体的验证要求。
2. 配置 DNS 记录
登录域名注册商或 DNS 托管平台。添加一条 CNAME 记录,名称为绑定域名(如 example.com 或 www.example.com),内容为 Pages 提供的目标地址(通常为 *.pages.dev 形式)。若使用 Cloudflare 托管 DNS,确保代理状态(Orange Cloud)开启以获得完整 SSL 保护。
3. 清理冲突记录
检查是否存在与该域名冲突的 A 记录或旧 CNAME 记录。同一主机记录不能同时存在 CNAME 和其他记录,如有冲突需删除旧记录。
4. 等待传播与签发
DNS 变更后通常需要几分钟到几小时传播。Pages 后台状态刷新后,若显示 Active,表示 SSL 证书已签发成功。
怎么验证是否生效
1. 使用 curl 命令检查响应头
在终端执行 curl -vI https://yourdomain.com,观察输出中是否包含 SSL certificate verify ok 且 HTTP 状态码为 200。
2. 浏览器地址栏检查
访问自定义域名,确认地址栏显示锁形图标,点击可查看证书颁发者为 Cloudflare 且有效期正常。
3. 控制台状态确认
回到 Pages Custom domains 页面,确认域名状态栏显示绿色 Active 标识,无警告信息。
常见坑
1. CAA 记录限制:域名 DNS 中若存在 CAA 记录且未授权 Cloudflare 签发证书,会导致 SSL 失败。需添加 0 issue "cloudflare.com" 记录或删除限制。
2. www 与非 www 冲突:绑定 example.com 后,若未单独绑定 www.example.com 且 DNS 未配置对应 CNAME,可能导致部分子域名验证失败。
3. 代理状态误关:若使用 Cloudflare DNS 但关闭了代理(Gray Cloud),Pages 可能无法自动完成 SSL 握手,建议保持代理开启。
常见问题
绑定域名后多久能生效?
通常 DNS 传播需要几分钟到几小时,SSL 证书签发在 DNS 验证通过后自动进行,多数情况 30 分钟内完成。
使用外部 DNS 服务商可以吗?
可以,只需在外部 DNS 服务商处正确配置 CNAME 记录指向 Pages 地址,无需将域名托管至 Cloudflare。
为什么显示 Error 526 Invalid SSL?
这通常表示 Cloudflare 边缘节点无法验证源站证书,但在 Pages 场景下,多因域名未完全激活或 DNS 未指向 Pages 导致。
参考来源
Cloudflare Documentation, "Custom domains on Pages", https://developers.cloudflare.com/pages/configuration/custom-domains/