TXT 记录验证需要在主机名的权威 DNS 中创建 TXT 记录。
当您创建自定义主机名时,您将选择一种证书验证方法。该 API 接受一种 ssl.method 值:http、txt 或 email。
通常,在无法使用 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 令牌。
一旦您创建了新主机名并选择了此验证方法,您的令牌将在几秒钟后准备就绪。
在自定义主机名创建期间或证书续期时,当证书处于待验证状态时,可通过 API 或仪表板获取这些令牌。
您可以使用 API 通过 GET 自定义主机名端点访问这些令牌。
例如,以下是 API 响应中针对通配符自定义主机名高亮显示的两个令牌。
{
"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"
}
]
}-
在 Cloudflare 仪表板中,转到 Custom Hostnames(自定义主机名) 页面。
Go to Custom Hostnames ↗ -
选择一个主机名。
-
复制 Certificate validation TXT name 和 Certificate validation TXT value 的值。
如果您之前创建了通配符自定义主机名,则需要复制两条不同验证 TXT 记录的值。
然后,您将需要与您的客户共享这些 TXT 令牌。
您的客户应在其权威 DNS 提供商处,将这些令牌放置在 "_acme-challenge" DNS 标签下。一旦这些 TXT 记录就位,验证和证书签发将自动完成。
如果您希望立即请求重新检查,而无需等待下一次重试,请发送一个 PATCH 请求,其值与最初的 POST 请求相同。
根据您的证书颁发机构,您的 DCV 令牌会在一定时间后到期。
这意味着,如果您的客户花费太长时间才将其令牌放置在其权威 DNS 提供商处,您可能需要获取新令牌并再次与您的客户共享。