DNS 安全扩展(DNSSEC) ↗通过为 DNS 记录添加加密签名来提高安全性。当您使用多个提供商且 Cloudflare 作为辅助时,有几种选项可为 Cloudflare 提供的记录启用 DNSSEC。
- 多签名者 DNSSEC:Cloudflare 和您的主 DNS 提供商都知道彼此的签名密钥,并根据 RFC 8901 ↗ 各自对 DNS 记录进行实时签名。
- 实时签名:如果您的域名未委派给主提供商的 nameserver,且 Cloudflare 辅助 nameserver 是唯一对 DNS 查询进行权威应答的 nameserver(隐藏主设置),您可以选择此选项,允许 Cloudflare 对您的 DNS 记录进行实时签名。
- 预签名:您的主 DNS 提供商对记录进行签名并传出签名。Cloudflare 原样提供这些记录和签名,不进行任何签名。默认情况下,Cloudflare 使用 NSEC 记录 ↗而不是 NSEC3——如有需要请参阅 NSEC3 支持。此外,预签名 DNSSEC 不支持 Secondary DNS Overrides 或 Load Balancing。
请参阅设置多签名者 DNSSEC 并按照说明操作,同时注意关于 Cloudflare 作为辅助的说明。
如果您使用 Cloudflare 辅助 nameserver 作为唯一对 DNS 查询进行权威应答的 nameserver(隐藏主设置),您可以启用实时签名 DNSSEC,让 Cloudflare 为您的 zone 签署记录。
在此设置中,主 DNS 提供商上的 DNSSEC 无需启用。
-
在 Cloudflare 仪表板中,前往 DNS Settings(DNS 设置) 页面。
Go to Settings ↗ -
在 DNSSEC with Secondary DNS(辅助 DNS 的 DNSSEC) 下选择 Live signing(实时签名)。然后您将获得在 registrar 处创建 DS 记录所需的多个值。
-
在注册商处添加 DS 记录。若注册商未列出 Algorithm 13(Cloudflare 首选的加密算法),它也可能称为 ECDSA Curve P-256 with SHA-256。
各提供商 DNSSEC 说明
以下并非完整列表,但这些链接可能有帮助:
- 使用 Edit DNSSEC Status 端点,并为您的 zone 将
status设为active。
Required API token permissions
At least one of the following token permissions is required:DNS Write
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dnssec" \
--request PATCH \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"status": "active"
}'-
使用 DNSSEC Details 端点 获取在 registrar 处创建 DS 记录所需的值。
-
在注册商处添加 DS 记录。若注册商未列出 Algorithm 13(Cloudflare 首选的加密算法),它也可能称为 ECDSA Curve P-256 with SHA-256。
各提供商 DNSSEC 说明
以下并非完整列表,但这些链接可能有帮助:
- Cloudflare 中的辅助 zone 已存在,并且从主 DNS 提供商的 zone 传输正常工作。
- 您已考虑主 DNS 提供商使用 NSEC 还是 NSEC3,并在需要时启用了 NSEC3 支持。
- 您的主 DNS 提供商会传出与 DNSSEC 相关的记录,例如 RRSIG、DNSKEY 和 NSEC。
- 在主 DNS 提供商处启用 DNSSEC。
- 使用仪表板或 API,为 Cloudflare 上的 zone 启用 DNSSEC。
-
在 Cloudflare 仪表板中,前往 DNS Settings(DNS 设置) 页面。
Go to Settings ↗ -
在 DNSSEC with Secondary DNS(辅助 DNS 的 DNSSEC) 下选择 Pre-signed(预签名)。
使用 Edit DNSSEC Status 端点,并将 dnssec_presigned 值设为 true。
Required API token permissions
At least one of the following token permissions is required:DNS Write
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dnssec" \
--request PATCH \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"dnssec_presigned": true
}'-
确保在 registrar 处添加了 Cloudflare nameserver。您可以在仪表板的 DNS Records(DNS 记录) ↗ 页面上查看 Cloudflare nameserver。
-
确保在 registrar 处添加了 DS 记录。DS 记录从主 DNS 提供商(zone 的签名者)获取,用于向 DNS 解析器指示您的 zone 已启用 DNSSEC。