このページでは、Cloudflare で multi-signer DNSSEC を有効にする方法を説明します。RFC 8901 ↗ の モデル 2 を使います。
次の点に注意してください。
- この手順では、ほかの DNS プロバイダーも multi-signer DNSSEC に対応している必要があります。
- ダッシュボードで一部の手順は完了できますが、現時点では全体の完了には API が必要です。
- DNS 設定 ↗ ページで DNSSEC と Multi-signer DNSSEC を有効にしても、1. Cloudflare ゾーンを設定する の最初の手順だけが置き換わります。セットアップを完了するには、このチュートリアルの残りの手順も実施してください。
Cloudflare をプライマリ DNS プロバイダーとして使い、DNS レコードを Cloudflare で管理している場合は、次の手順を行います。
-
Cloudflare ダッシュボードで、DNS 設定 ページに移動します。
Settings を開く ↗ -
Enable DNSSEC を選択し、Confirm を選択します。
- Multi-signer DNSSEC と Multi-provider DNS も有効にします。
- DNS レコード ↗ ページに移動し、ゾーン頂点(レコードの Name 欄に
@を使います)に次のレコードを作成します。- 外部プロバイダーの Zone Signing Key(ZSK)を含む DNSKEY レコード。
- 外部プロバイダーのネームサーバーを指す NS レコード。
- Edit DNSSEC Status エンドポイント を使い、ゾーンの DNSSEC を有効にし、multi-signer DNSSEC を有効にします。次の例のように、
statusをactiveに、dnssec_multi_signerを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 '{
"status": "active",
"dnssec_multi_signer": true
}'- 外部プロバイダーの ZSK を、ゾーンに DNSKEY レコードを作成して Cloudflare に追加します。
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/dns_records" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"type": "DNSKEY",
"name": "<ZONE_NAME>",
"data": {
"flags": 256,
"protocol": 3,
"algorithm": 13,
"public_key": "<PUBLIC_KEY>"
},
"ttl": 3600
}'- 外部プロバイダーのネームサーバーを、ゾーン頂点の NS レコードとして追加します。
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/dns_records" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"type": "NS",
"name": "<ZONE_NAME>",
"content": "<NS_DOMAIN>",
"ttl": 86400
}'- 前の手順で追加したネームサーバーを使えるように、次の API リクエストを実行します。
Required API token permissions
At least one of the following token permissions is required:Zone DNS Settings WriteDNS Write
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_settings" \
--request PATCH \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"multi_provider": true
}'Cloudflare をセカンダリ DNS プロバイダーとして使う場合は、次の手順を行います。
-
Cloudflare ダッシュボードで、DNS 設定 ページに移動します。
Settings を開く ↗ -
DNSSEC with Secondary DNS で Live signing を選択します。
- Multi-signer DNSSEC も有効にします。
- 外部プロバイダーの Zone Signing Key(ZSK)を、プライマリ DNS プロバイダーの DNSKEY レコードに追加します。このレコードは Cloudflare へ正常に転送される必要があります。
- 外部プロバイダーのネームサーバーを、プライマリ DNS プロバイダーのゾーン頂点に NS レコードとして追加します。これらのレコードも Cloudflare へ正常に転送される必要があります。
- Edit DNSSEC Status エンドポイント を使い、ゾーンの DNSSEC を有効にし、multi-signer DNSSEC を有効にします。次の例のように、
statusをactiveに、dnssec_multi_signerを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 '{
"status": "active",
"dnssec_multi_signer": true
}'-
外部プロバイダーの ZSK を、プライマリ DNS プロバイダーの DNSKEY レコードに追加します。このレコードは Cloudflare へ正常に転送される必要があります。
-
外部プロバイダーのネームサーバーを、プライマリ DNS プロバイダーのゾーン頂点に NS レコードとして追加します。これらのレコードも Cloudflare へ正常に転送される必要があります。
- Cloudflare の ZSK を取得します。API を使うか、割り当て済みの Cloudflare ネームサーバーの 1 つにクエリします。
API の例:
curl "https://api.cloudflare.com/client/v4/zones/{zone_id}/dnssec/zsk" \
--header "X-Auth-Email: <EMAIL>" \
--header "X-Auth-Key: <API_KEY>"コマンドラインクエリの例:
$ dig <ZONE_NAME> dnskey @<CLOUDFLARE_NAMESERVER> +noall +answer | grep 256- 前の手順で取得した Cloudflare の ZSK を、外部プロバイダーの DNSKEY レコードセットに追加します。
- Cloudflare のネームサーバーを、外部プロバイダーの NS レコードセットに追加します。
-
各プロバイダーの DS レコードをレジストラに追加します。Cloudflare の DS レコードは、DNS 設定 ↗ ページの DS Record で確認できます。
-
レジストラのネームサーバー設定を更新し、multi-signer DNSSEC セットアップで使うすべてのプロバイダーのネームサーバーを含めます。