跳转到内容
搜索文档

Domain Connect

最后更新 查看 MarkdownAgent 设置

若您是服务提供商,请参阅本页了解 Cloudflare 如何支持 Domain Connect,以及如何接入您的模板。

什么是 Domain Connect

Domain Connect 是一项开放标准,使服务提供商(如电子邮件或 Web 托管平台)能够更轻松地为其最终用户配置功能,而无需手动编辑 DNS 记录。

这通过模板实现,模板弥合了必要配置(服务提供商所需)与必要 DNS 记录更改(必须在权威 DNS 提供商处进行)之间的差距。

实践中,这意味着当拥有 example.com 且以 Cloudflare 作为权威 DNS 的用户想要使用您的服务时,他们只需进行身份验证,必要的更改将自动应用,而无需手动更新 DNS 记录。

设置

开始之前

1. 将模板添加到仓库

Domain Connect 模板在 GitHub 仓库中发布和维护。

  1. Fork templates 仓库
  2. 添加您的模板。您可以复制现有模板之一,并根据需要进行编辑。
    • 有关不同可用字段的详细信息,请参阅 Domain Connect 规范

    • 若存在,您必须在模板上将 syncBlock 字段设置为 false。这意味着模板流程将是同步的,这是 Cloudflare 唯一支持的选项。

    • 您还必须提供同步公钥域名(syncPubKeyDomain 1)。当您的模板在使用中时,同步调用将进行数字签名。

  3. 确保遵循 Domain Connect 定义的命名格式:<providerId>.<serviceId>.json
  1. 提交 pull request,将您的模板添加到仓库。

pull request 经过审核并合并后,请按下方说明联系 Cloudflare。

2. 联系 Cloudflare 以接入您的模板

模板接入后,将为您的最终用户提供图形用户界面流程。

发送电子邮件至 domain-connect@cloudflare.com,包含以下信息:

  1. 您要接入的模板列表及其对应的 GitHub 超链接。

  2. 用于查询 syncPubKeyDomain1 TXT 记录的完全限定域名。

  3. 作为 Domain Connect 流程一部分显示的 logo。优先使用 SVG 格式。

  4. 您希望 Cloudflare 为模板中的 AAAAACNAME 记录设置的默认代理状态。不支持代理其他记录类型。

5.(可选)用于测试流程的 Cloudflare 账户 ID

若您已部署 DNS 提供商发现自动化且不会手动列出新的 DNS 提供商,Cloudflare 可以最初将您的模板限制为仅对指定账户可见。确认一切按预期工作后,Cloudflare 将在发现端点上发布您的模板,供您的自动化获取。

属性支持

Domain Connect 规范中,您会找到以下属性:

虽然 Cloudflare 支持其中大部分属性,但有些是必需的,有些则不受支持。

应用模板 URL

完整列表请参阅 Domain Connect 规范。以下是 Cloudflare 特定的详细信息。

  • Redirect URI:Domain Connect 文档指出,它必须限定于模板中的 syncRedirectDomain,或请求必须签名。Cloudflare 要求请求签名,因此不会检查 redirect_uri 是否限定于 syncRedirectDomain
  • State:不受支持,将被忽略。
  • Service Name:不受支持,将被忽略。
  • Signature:必需。它还必须是最后一个查询参数。
  • Key:必需。您必须发布公钥,并将其放在模板中指定为 syncPubKeyDomain 的域名的 DNS TXT 记录中。为支持密钥轮换,TXT 记录的主机名必须作为查询字符串上的另一个变量追加。

模板定义

完整列表请参阅 Domain Connect 规范。以下是 Cloudflare 特定的详细信息。

  • Service Provider Name:将显示在用户界面上。
  • Service Name:将不会显示在用户界面上。
  • Logo:若存在,将显示在用户界面上。
  • Synchronous Block:不受支持,将被忽略。Cloudflare 仅支持同步流程。
  • Shared:不受支持,将被忽略。
  • Shared Service Name:不受支持,将被忽略。
  • Synchronous Public Key Domain:必需。Cloudflare 仅支持同步流程并始终检查签名。
  • Synchronous Redirect Domains:不受支持,将被忽略。Cloudflare 查看已签名的应用模板 URL 中提供的 redirect_uri
  • Multiple Instance:不受支持,将被忽略。
  • Warn Phishing:不受支持,将被忽略。
  • Host Required:不受支持,将被忽略。

DNS 记录

完整列表请参阅 Domain Connect 规范。以下是 Cloudflare 特定的详细信息。

  • Essential:不受支持,将被忽略。
  • TXT Conflict Matching Mode:不受支持,将被忽略。
  • TXT Conflict Matching Prefix:不受支持,将被忽略。

自定义记录类型

以下记录类型在 Domain Connect 规范的 extensions/exclusions 部分中描述。以下是 Cloudflare 特定的详细信息。

  • APEXCNAME:不支持此自定义记录类型,将导致接入失败。您可以使用标准 CNAME 记录代替,因为 Cloudflare 会在 zone apex 自动应用 CNAME flattening
  • REDIR301REDIR302:应用时,这些记录将转换为 zone 特定的批量重定向规则。若 zone 在应用模板之前已有批量重定向,它们将被替换。

模板更新

自 2024 年 9 月起,模板更新由自动化获取。

自动化将 Cloudflare 中的模板版本号与互联网上模板的权威来源进行比较。此检查每天运行多次。虽然 Cloudflare 无法保证每次更新的确切获取时间,但该过程预计不会超过八小时。

您可以联系 Cloudflare 选择退出自动更新。禁用自动化后,您可以单独请求模板更新,发送邮件至 domain-connect@cloudflare.com

故障排除

发送电子邮件至 domain-connect@cloudflare.com,包含以下信息:

  1. 详细描述问题,包括:

    • 问题发生的日期和时间。
    • 模板的 providerIdserviceId
    • 请求实际做了什么。
    • 您预期会发生什么。
  2. 包含问题更新的 HAR 文件附件。

验证错误

模板接入后最常见的问题是验证错误,通常由 syncPubKeyDomain TXT 记录引起。

您可以使用 Domain Connect 等工具提供的工具重新发布签名来修复这些问题。此外,您可以使用此公钥调试工具测试签名验证。

Footnotes

  1. 可查询包含公钥的 TXT 记录以验证数字签名的域名。详情请参阅数字签名请求 2

这篇文档对您有帮助吗?