跳转到内容
搜索文档

TXT

最后更新 查看 MarkdownAgent 设置

TXT 记录验证需要在主机名的权威 DNS 中创建 TXT 记录。


当您创建自定义主机名时,您将选择一种证书验证方法。该 API 接受一种 ssl.method 值:httptxtemail

何时使用

通常,在无法使用 HTTP 验证委托 DCV 时,或者在您的客户更改 DNS 之前需要激活证书时,您应该使用基于 TXT 的 DCV。

非通配符自定义主机名

如果您的自定义主机名不包含通配符,那么在主机名指向您的 SaaS 目标后,Cloudflare 始终会尝试通过 HTTP 验证来完成 DCV,即使您已选择 TXT 作为您的验证方法。

只要您客户的主机名指向您的 SaaS 目标,并且他们没有任何阻止您选择的证书颁发机构的 CAA 记录,此 HTTP 验证就会成功。

这种自动 HTTP 尝试并不意味着创建自定义主机名 API 会在一个请求中同时接受 HTTP 和 TXT 验证方法。ssl.method 字段接受一个值。

通配符自定义主机名

要验证通配符自定义主机名上的证书,您应设置委托 DCV基于 TXT 的 DCV

Cloudflare 推荐使用委托 DCV,因为它对您和您的客户来说更为简便。

如果您选择基于 TXT 的 DCV,Cloudflare 需要两个 TXT DCV 令牌——一个用于顶级域名,一个用于通配符——并将其放置在客户的权威 DNS 提供商处,通配符证书才能签发或续期。

需要两个令牌是因为 Let's Encrypt 和 Google Trust Services 遵循 ACME 协议,该协议要求为证书上的每个主机名放置一个 DCV 令牌。

这意味着,如果您选择使用通配符自定义主机名,您将需要一种方法来与您的客户共享这些 DCV 令牌。


1. 获取 TXT 令牌

一旦您创建了新主机名并选择了此验证方法,您的令牌将在几秒钟后准备就绪。

在自定义主机名创建期间或证书续期时,当证书处于待验证状态时,可通过 API 或仪表板获取这些令牌。

您可以使用 API 通过 GET 自定义主机名端点访问这些令牌。

例如,以下是 API 响应中针对通配符自定义主机名高亮显示的两个令牌。

Responsejson
{
  "result": [
    {
      "id": "<HOSTNAME_ID>",
      "hostname": "<HOSTNAME>",
      "ssl": {
        "id": "<CERTIFICATE_ID>",
        "type": "dv",
        "method": "txt",
        "status": "pending_validation",
        "validation_records": [
          {
            "status": "pending",
            "txt_name": "_acme-challenge.<HOSTNAME>",
            "txt_value": "gESljTB8fBT1mIuoEASU0qcK-oTd46baarnU_ZGjJIY"
          },
          {
            "status": "pending",
            "txt_name": "_acme-challenge.<HOSTNAME>",
            "txt_value": "Pd8ViwX8KuA78kLbQHGmdEh4tQSpHBRxiNuJOYStEC0"
          }
        ],
        "settings": {
          "min_tls_version": "1.0"
        },
        "bundle_method": "ubiquitous",
        "wildcard": true,
        "certificate_authority": "google"
      },
      "status": "pending",
      "ownership_verification": {
        "type": "txt",
        "name": "_cf-custom-hostname.<HOSTNAME>",
        "value": "ac4a9a9d-5469-44cb-9d76-cea7541c9ff8"
      },
      "ownership_verification_http": {
        "http_url": "http://<HOSTNAME>/.well-known/cf-custom-hostname-challenge/fabdf93c-a4ce-4075-9f3f-c553a5f93bed",
        "http_body": "ac4a9a9d-5469-44cb-9d76-cea7541c9ff8"
      },
      "created_at": "2022-10-06T19:35:33.143257Z"
    }
  ]
}
  1. 在 Cloudflare 仪表板中,转到 Custom Hostnames(自定义主机名) 页面。

    Go to Custom Hostnames ↗
  2. 选择一个主机名。

  3. 复制 Certificate validation TXT nameCertificate validation TXT value 的值。

如果您之前创建了通配符自定义主机名,则需要复制两条不同验证 TXT 记录的值。

2. 与您的客户共享

然后,您将需要与您的客户共享这些 TXT 令牌。

3. 添加 DNS 记录(客户)

您的客户应在其权威 DNS 提供商处,将这些令牌放置在 "_acme-challenge" DNS 标签下。一旦这些 TXT 记录就位,验证和证书签发将自动完成。

如果您希望立即请求重新检查,而无需等待下一次重试,请发送一个 PATCH 请求,其值与最初的 POST 请求相同。

4. (可选) 获取新令牌

根据您的证书颁发机构,您的 DCV 令牌会在一定时间后到期。

这意味着,如果您的客户花费太长时间才将其令牌放置在其权威 DNS 提供商处,您可能需要获取新令牌并再次与您的客户共享。

这篇文档对您有帮助吗?