默认情况下,你每分钟最多可签发 15 个证书。仅成功提交(返回 200 的 POST)会计入限制。如果超出限制,你将在 30 秒内无法签发新证书。
如果你需要更高的速率限制,请联系你的客户成功经理。
要从 Cloudflare 缓存中移除特定文件,在 清除缓存 时指定一个或多个主机名。
当自定义主机名无法被路由或代理时,Cloudflare 会返回 1016 错误。
错误 1016 有三个主要原因:
- 自定义主机名所有权验证未完成。要检查验证状态,请运行 API 调用以 按主机名搜索证书,并检查验证错误字段:
"verification_errors": ["custom hostname does not CNAME to this zone."]。 - Fallback Origin 未 正确设置。确认你已为 fallback origin 创建 DNS 记录,并设置了 fallback origin。
- 已创建通配符自定义主机名,但请求的主机名关联到 Cloudflare 中作为独立 zone 存在的域名。在这种情况下,独立 zone 的 主机名优先级 会优先于通配符自定义主机名。即使该独立 zone 主机名没有 DNS 记录,此行为也适用。
在此场景中,每个需要由 Cloudflare for SaaS 父 zone 提供服务的主机名,都需要作为单独的自定义主机名添加。
切换 SaaS 提供商时,如果旧提供商预配了特定自定义主机名,而新提供商预配了通配符自定义主机名,旧配置可能优先。这是根据 证书与主机名优先级 的预期行为。
在这种情况下有两种前进方式:
- (推荐)请新 SaaS 提供商为你预配特定自定义主机名,而不是通配符——例如
mystore.example.com而不是*.example.com。 - 请你账户的超级管理员联系 Cloudflare 支持,请求更新 SaaS 配置。
要将自定义主机名移回 Active 状态,请发送 PATCH 请求 以重新启动主机名验证。处于 Moved 状态的自定义主机名会在 7 天后删除。
在某些情况下,如果你的客户更改了指向你的 SaaS 服务的 DNS 记录,自定义主机名也可能进入 Moved 状态。更多详情请参阅 移除自定义主机名。
自定义主机名状态中的 caa_error 表示域名上配置的 CAA 记录阻止了证书颁发机构签发证书。
你可以使用 dig 命令检查域名上配置了哪些 CAA 记录:
dig CAA example.com
你需要确保已配置所选证书颁发机构所需的 CAA 记录。 例如,以下是签发 Let's Encrypt ↗ 与 Google Trust Services ↗ 证书所需的记录:
example.com CAA 0 issue "pki.goog; cansignhttpexchanges=yes"
example.com CAA 0 issuewild "pki.goog; cansignhttpexchanges=yes"
example.com CAA 0 issue "letsencrypt.org"
example.com CAA 0 issuewild "letsencrypt.org"
example.com CAA 0 issue "ssl.com"
example.com CAA 0 issuewild "ssl.com"更多详情请参阅 CAA 记录常见问题。
请勿配置与区域名称相匹配的自定义主机名。例如,如果您的 SaaS 区域为 example.com,请不要创建名为 example.com 的自定义主机名。
此配置会因出于安全原因应用的 DNS 覆盖限制而导致 403 Forbidden 错误。此限制也会影响进行子请求的 Worker Routes。
由于 Let's Encrypt——Cloudflare 使用的 证书颁发机构 (CA) 之一——已宣布其 信任链 的变更,自 2024 年 9 月 9 日起,较旧设备尝试连接到你的自定义主机名证书时可能出现问题。
考虑以下解决方案:
-
使用 Edit Custom Hostname 端点将
certificate_authority参数设为空字符串 (""):这会将自定义主机名证书设为 “default CA”,由 Cloudflare 决定。Cloudflare 始终会尝试从兼容性更好的 CA(例如 Google Trust Services)签发证书,仅当存在阻止 Google 签发证书的 CAA 记录 时,才会回退到使用 Let’s Encrypt。API 调用示例
curl --request PATCH \ "https://api.cloudflare.com/client/v4/zones/{zone_id}/custom_hostnames/{custom_hostname_id}" \ --header "X-Auth-Email: <EMAIL>" \ --header "X-Auth-Key: <API_KEY>" \ --header "Content-Type: application/json" \ --data '{ "ssl": { "method": "txt", "type": "dv", "certificate_authority": "" } }' -
使用 Edit Custom Hostname 端点将
certificate_authority参数设为google:这将 Google Trust Services 设为自定义主机名的 CA。在 API 调用中,请确保在ssl对象中也包含method与type。 -
如果你的自定义主机名使用自定义证书,请参阅 自定义证书故障排除。
zone 冻结功能 是一个开关,可防止其 zone 在其他 Cloudflare 账户上被激活。启用后,Cloudflare 无法代表该域名名为 zone 或自定义主机名签发 SSL/TLS 证书。
当启用选项 Also prevent subdomains(同时阻止子域名)时,这会阻止此域名的自定义主机名验证。自定义主机名将保持 Blocked 状态,并显示以下错误消息:The hostname is associated with a held zone. Please contact the owner of this domain to have the hold removed. 在这种情况下,zone 所有者需要 解除冻结,自定义主机名才能变为激活状态。
Blocked 状态是终态——自定义主机名不会自动重试验证。解除 zone 冻结后,在 Cloudflare 仪表板中选择自定义主机名上的 Refresh(刷新),或向自定义主机名发送 PATCH 请求,以重新启动验证过程。主机名验证完成后,可以再次启用 zone 冻结。
Common Name (CN) 限制规定了 64 个字符的上限(RFC 5280 ↗)。如果你的主机名超过此长度,可能会看到以下错误:
Since no host is 64 characters or fewer, Cloudflare Branding is required. Please check your input and try again. (1469)要解决此问题,你可以在通过 API 创建自定义主机名 时将 cloudflare_branding 设为 true。
Cloudflare branding 意味着 sni.cloudflaressl.com 将作为证书 Common Name (CN) 添加,而长主机名将作为 Subject Alternative Name (SAN) 的一部分包含。