跳转到内容
搜索文档

预验证

最后更新 查看 MarkdownAgent 设置

预验证方法可帮助你在客户流量通过 Cloudflare 代理之前验证域名所有权。

适用场景

当客户无法容忍任何停机时间时,请使用预验证方法,这在生产域名中经常出现。

缺点是这些方法需要客户完成额外的设置步骤。尤其是如果你已经需要他们为证书验证向其域名添加内容,预验证可能会使他们的接入更加复杂。

如果客户可以接受短暂停机,且你希望他们的设置更简单,请参阅我们的实时验证方法

操作方法

TXT 记录

TXT 验证是指客户向其权威 DNS 添加 TXT 记录以验证域名所有权。

设置 TXT 验证:

  1. 当你创建自定义主机名时,保存 ownership_verification 信息。

    {
    "result": [
        {
        "id": "3537a672-e4d8-4d89-aab9-26cb622918a1",
        "hostname": "app.example.com",
        // ...
        "status": "pending",
        "verification_errors": ["custom hostname does not CNAME to this zone."],
        "ownership_verification": {
            "type": "txt",
            "name": "_cf-custom-hostname.app.example.com",
            "value": "0e2d5a7f-1548-4f27-8c05-b577cb14f4ec"
        },
        "created_at": "2020-03-04T19:04:02.705068Z"
        }
    ]
    }
  2. 让客户在其权威 DNS 提供商处添加具有该 namevalueTXT 记录。

  3. 几分钟后,你将在 UI 中看到主机名状态变为 Active(活动)

  4. 激活自定义主机名后,客户可以移除 TXT 记录。

HTTP 令牌

HTTP 验证是指你或客户在其源服务器上放置 HTTP 令牌以验证域名所有权。

设置 HTTP 验证:

当你使用 API 创建自定义主机名时,Cloudflare 会在响应中提供 HTTP ownership_verification 记录。

获取并使用 ownership_verification 记录:

  1. 调用 API 以创建 Custom Hostname

  2. 在响应中,从 ownership_verification_http 对象复制 http_urlhttp_body

    Example response (truncated)json
    {
      "result": [
        {
          "id": "24c8c68e-bec2-49b6-868e-f06373780630",
          "hostname": "app.example.com",
          // ...
          "ownership_verification_http": {
              "http_url": "http://app.example.com/.well-known/cf-custom-hostname-challenge/24c8c68e-bec2-49b6-868e-f06373780630",
              "http_body": "48b409f6-c886-406b-8cbc-0fbf59983555"
          },
          "created_at": "2020-03-04T20:06:04.117122Z"
        }
      ]
    }
  3. 让客户将 http_urlhttp_body 放置在其源 Web 服务器上。

    Example response (truncated)txt
    location "/.well-known/cf-custom-hostname-challenge/24c8c68e-bec2-49b6-868e-f06373780630" {
        return 200 "48b409f6-c886-406b-8cbc-0fbf59983555\n";
    }

    Cloudflare 将通过向 http_url 发送 GET 请求并使用 User-Agent: Cloudflare Custom Hostname Verification 来访问此令牌。

  4. 几分钟后,你将在 UI 中看到主机名状态变为 Active(活动)

  5. 主机名变为 active 后,客户可以从源服务器移除令牌。

使用 HTTP DCV 实现零停机迁移

在接入主机名已在其他提供商处上线的客户时,你可以将预验证与手动 HTTP DCV 结合使用,以实现零停机迁移:

  1. 使用 "ssl": {"method": "http", "type": "dv"} 创建自定义主机名。
  2. 使用 TXT 记录完成主机名所有权预验证,使主机名达到 status: active
  3. 等待 ssl.validation_records 填充 HTTP DCV 令牌(一对 http_urlhttp_body)。
  4. 请客户在当前实时源站的 http_url 路径上提供 DCV 令牌。证书颁发机构将根据当前 DNS 目标进行验证。
  5. 一旦 ssl.status 达到 active,主机名和证书都已就绪。
  6. 客户现在可以更新其 DNS CNAME 以指向你的 SaaS 目标,而不会中断——证书已签发。

这篇文档对您有帮助吗?