概述
CloudFlare SAAS(自定义主机名)功能,核心是为类似“自助建站”等多用户分站平台提供服务,允许终端用户将其自有域名接入您的 CloudFlare 账户,而非直接解析到您的源站服务器。这提供了更好的安全性和管理性。
本文目标: 虽然 SAAS 常用于多用户分站场景,但本指南将聚焦于利用此功能,结合自选 CloudFlare IP 地址,为您的单个主网站域名提供服务。思路与传统分站逻辑不同。
准备工作
CloudFlare 账户:
- 需要一个已注册的 CloudFlare 账户。
- 关键要求: 必须通过 PayPal 或海外银行卡验证支付方式,以开通 CloudFlare for SaaS(自定义主机名) 功能。
网站域名:
- 这是您实际用于建站并希望使用自选 IP 的域名(例如
www.yourname.com
,yourname.com
)。 - 重要限制: 此域名的 DNS 解析服务器不能使用 CloudFlare。使用 CloudFlare DNS 会导致 CDN 配置冲突。
- 注意:
www.yourname.com
和yourname.com
被视为两个不同的主机名(网站)。 - 本文示例: 我们将使用
web.baota.me
(其 DNS 解析托管在华为云)。
- 这是您实际用于建站并希望使用自选 IP 的域名(例如
回源域名:
- 此域名的 NS 记录必须接入 CloudFlare,由 CloudFlare 完全管理其 DNS。因此它不能用于自选 IP。
选择建议:
- 如果需要接入大量网站域名,请选择您计划长期持有的域名。
- 避免使用“年抛”域名,到期迁移会很麻烦。
- 可以考虑价格低廉且可续费多年的域名(如 6 位数字
.xyz
)。
- 兼容性: 并非所有域名后缀都支持 NS 接入 CloudFlare。可参考:CloudFlare可NS方式接入的免费、低价域名
- 本文示例: 使用
baota.free.hr
(通过 dash.gacjie.cn 注册,请注意:该项目已停止注册 free.hr 域名)。
配置步骤
1. 将回源域名 NS 接入 CloudFlare
如果您的回源域名已在 CloudFlare 通过 NS 方式管理,请跳过此步。
- 在 CloudFlare 账户中添加您的回源域名(示例:
baota.free.hr
)。 - 添加完成后,CloudFlare 会提供其专属的 NS 服务器地址。复制这些地址。
- 登录您的回源域名注册商控制面板,将域名的 NS 记录更新为 CloudFlare 提供的地址。
- 等待 NS 更改生效(通常需要几小时,最多 48 小时)。您也可以在 CloudFlare 界面查看状态。
2. 配置网站域名的 DNS
- 确保您的网站域名(示例:
web.baota.me
)的 DNS 解析托管在 非 CloudFlare 的服务商(如华为云、阿里云、Cloudflare 以外的其他 DNS 提供商)。 - 在后续步骤中,您需要在此 DNS 服务商处添加验证记录和解析记录。
3. 在回源域名下创建回退源地址
- 在 CloudFlare 控制面板中,进入您的回源域名(
baota.free.hr
)的 DNS 设置。 - 点击 添加记录。
选择记录类型为
A
或CNAME
。- 名称: 填写一个子域名前缀(如
source
)。建议使用子域名而非根域名(@
)。 - IPv4 地址 / 目标: 填写您源站服务器的 公网 IP 地址(示例:
111.111.111.111
)。如果是CNAME
,则填写您的源站地址。 - 代理状态: 务必开启(橙色云朵图标)。关闭此状态会导致所有通过自定义主机名接入的流量直接回源,绕过 CloudFlare CDN 保护。
- TTL: 保持默认(自动)即可。
- 名称: 填写一个子域名前缀(如
- 点击 保存。此记录创建了我们的回退源地址(示例:
source.baota.free.hr
->111.111.111.111
)。
4. 在自定义主机名中添加回退源地址
- 回到 CloudFlare 账户首页,进入 SSL/TLS -> 自定义主机名。
- 在 回退源 部分,点击 添加回退源。
- 输入您在上一步创建的 回退源地址(示例:
source.baota.free.hr
)。 - 点击 添加回退源。
5. 添加网站域名(自定义主机名)
- 确保回退源状态正常(可能需要短暂等待),然后点击右上角的 添加自定义主机名。
- 在 自定义主机名 输入框中,填写您要接入的 网站域名(示例:
web.baota.me
)。您可以添加多个(如www.yourname.com
,yourname.com
)。 - 点击 添加自定义主机名。
6. 证书验证(DCV 委派验证方式)
CloudFlare 提供两种证书验证方式:
- TXT 解析验证: 使用TXT记录解析验证的方式,可能不会自动续签。
- DCV 委派验证: 使用cname的方式解析到指定dcv地址,以便自动化颁发续订证书。本文采用此方式。
- CloudFlare 会生成 DCV 委派验证 信息。复制提供的值(示例:
web.baota.me.9cf4d41f99889e0c.dcv.cloudflare.com
)。 - 登录您的网站域名的 DNS 托管服务商控制面板(示例:华为云)。
添加一条
CNAME
记录:主机名: 根据您添加的网站域名格式填写:
- 如果是 根域名(如
yourname.com
):主机名填写_acme-challenge
- 如果是
www
子域名(如www.yourname.com
):主机名填写_acme-challenge.www
- 如果是 其他子域名(如
web.baota.me
):主机名填写_acme-challenge.web
(这里的web
对应子域名前缀)
- 如果是 根域名(如
- 值/目标: 粘贴从 CloudFlare 复制的 DCV 委派值(示例:
web.baota.me.9cf4d41f99889e0c.dcv.cloudflare.com
)。 - TTL: 保持默认或设置较低值(如 300 秒)。
- 保存 DNS 记录。
7. 为网站域名添加解析记录指向回退源
- 仍在您的网站域名的 DNS 托管服务商处。
添加一条
CNAME
记录:- 主机名: 填写您的网站域名的主机部分(如
web
对应web.baota.me
;www
对应www.yourname.com
;@
通常对应根域名yourname.com
)。 - 值/目标: 填写您在 步骤 3 创建的回退源地址(示例:
source.baota.free.hr
)。 - TTL: 保持默认或设置合理值。
- 主机名: 填写您的网站域名的主机部分(如
- 保存 DNS 记录。
8. 主机名验证(实时验证方式)
CloudFlare 提供两种主机名验证方式:
- 预验证 (TXT/HTTP): 需要等待 CloudFlare 扫描,时间较长。
- 实时验证 (CNAME): 要求网站域名正确
CNAME
指向回退源地址(即上一步配置),验证速度更快。本文采用此方式。
- 为了加速验证过程,使用一个外部工具(如 ITDOG)访问一次您的网站域名(示例:
http://web.baota.me
)。这会产生一个真实的 DNS 查询和连接请求,帮助 CloudFlare 快速检测到配置。
9. 检查验证状态
- 返回 CloudFlare 控制面板的 SSL/TLS -> 自定义主机名 页面。
- 刷新 页面。
- 正常情况下,您添加的网站域名状态应很快变为 有效(可能显示绿色对勾或“Active”)。
- 如果状态未更新,请耐心等待几分钟,或仔细检查上述所有步骤(特别是 DNS 记录是否配置正确且已生效)。
10. (可选) 最终解析配置检查参考
下图展示了网站域名 (web.baota.me
) 在 DNS 服务商(华为云)处最终应具备的关键记录:指向回退源的 CNAME
记录和用于 DCV 验证的 CNAME
记录。请注意,图中主机名部分显示的 baota.me
是华为云解析系统的自动附加显示,在其他 DNS 服务商界面显示方式可能不同。
完成
至此,您的网站域名 (web.baota.me
) 已成功通过 CloudFlare SAAS 功能接入,流量将经由您配置的 CloudFlare 节点(未来可在此架构基础上实现自选IP)到达您的源站服务器 (111.111.111.111
),并享受 CloudFlare 提供的 CDN 加速和安全防护。请确保源站服务器已正确配置以接受来自 CloudFlare IP 的流量并响应 web.baota.me
的请求。
通过这种方式,是不是只能https访问,http访问找不到网页。设置了自动重定向也不生效,有办法解决吗?
用自定义主机名cname解析后,报403 Forbidden 错误,直接访问回退源地址是正常的。
如果配置的网站为baota.me。
主机名为_acme-challenge值为baota.me.9cf4d41f99889e0c.dcv.cloudflare.com
配置一级域名好像,CF那边一直错误。
我的域名支持 cname 解析,是不是 直接 去 dnspod 把www 和 @ 解析记录值,可以直接指向 cloudflare.182682.xyz 这个优选域名了,
就不用 SAAS 接入了,
证书一直出问题是为什么呢,直接解析到回退源地址又是正常的