CloudflareDKIMメール認証Web 担当者

Cloudflare で DKIM を設定する手順

ドメイン番人5 分で読めます
目次

Cloudflare で DKIM を扱う 3 方式

この記事でわかること

  • Cloudflare で DKIM を扱う 3 つの方式(受信 / 送信 / 外部 SaaS 連携)
  • それぞれのセットアップ手順
  • DKIM レコードを Cloudflare DNS で登録する具体例
  • よくある失敗パターン

Cloudflare における DKIM の整理

「Cloudflare で DKIM を設定」と言っても、シナリオが 3 つに分かれます。

方式 A: Email Routing(受信転送)の DKIM 検証

Cloudflare Email Routing は受信メールを自社ドメインで受け取って Gmail 等に転送するサービス。受信時の DKIM 検証は Cloudflare が自動で行います。利用者側で DKIM 鍵を発行する必要はありません。

方式 B: Workers Mail API(送信)の DKIM 署名

Cloudflare Workers から送信する場合、SendGrid / Resend / Mailgun 等の SMTP サービスを経由するのが一般的。この場合は経由先 SaaS で DKIM 鍵を発行・登録します。Cloudflare 自体は中継するだけです。

方式 C: 外部 SaaS(SendGrid 等)との TXT 連携

自社ドメインを Cloudflare DNS で管理しつつ、SendGrid / Mailgun 等から自社ドメイン名義で送信する場合、SaaS が指定する CNAME / TXT レコードを Cloudflare DNS に登録します。これが最も一般的なシナリオです。CNAME で送信サービス側へ鍵を委ねる仕組みと TXT 直書きとの違いはDKIM の CNAME 委譲とは|SaaS 送信で詳しく解説しています。

方式 C の具体手順(最も一般的)

CNAME 委任 vs TXT 直接登録

ステップ 1: SaaS 側で DKIM 設定を開始

SendGrid を例にすると、「Settings → Sender Authentication → Authenticate Your Domain」で対象ドメインを入力。SendGrid が CNAME 3 本を提示します。

s1._domainkey.example.co.jp  CNAME  s1.domainkey.uXXXXX.wlYYYYY.sendgrid.net
s2._domainkey.example.co.jp  CNAME  s2.domainkey.uXXXXX.wlYYYYY.sendgrid.net
em1234.example.co.jp        CNAME  uXXXXX.wlYYYYY.sendgrid.net

ステップ 2: Cloudflare DNS に登録

Cloudflare ダッシュボード → 該当ドメイン → DNS → Records → Add record。Type に CNAME を選択し、SaaS から提示された値を 3 本登録します。

重要: 各レコードの Proxy status は「DNS only」(グレー雲) にします。プロキシ(オレンジ雲)にすると DKIM 検証時に CNAME 先が正しく解決されません。

ステップ 3: SaaS 側で検証

SendGrid の管理画面に戻り、「Verify」ボタンを押します。CNAME が正しく登録されていれば「Verified」になります。

ステップ 4: テストメール送信 + DKIM 検証

テストメールを Gmail に送信し、受信したメールのヘッダ Authentication-Results で dkim=pass を確認します。DKIM 確認の詳細は DKIM 確認 コマンド を参照。

自前で鍵を生成する場合(BYODKIM)

特定 SaaS の鍵生成に依存せず、自社で鍵管理したい場合は BYODKIM 方式を取れます。Cloudflare DNS には TXT レコードで公開鍵を直接登録します。

selector1._domainkey.example.co.jp  TXT  "v=DKIM1; k=rsa; p=<公開鍵>"

BYODKIM の詳細は BYODKIM とは|AWS SES / Cloudflare の設定 を参照。

Cloudflare 固有のよくある失敗

失敗 1: Proxy(オレンジ雲)が ON のままで CNAME 検証失敗

Cloudflare DNS の初期設定で CNAME が自動的にプロキシ ON になることがあります。DKIM の CNAME は 必ず DNS only(グレー雲) にします。

失敗 2: 値の改行コードやスペースで TXT が壊れる

TXT に公開鍵を貼るとき、改行や余分なスペースが混入すると DKIM 検証が失敗します。SaaS が提示した値を 手動編集せずコピー します。

失敗 3: 上限を超えた TXT 文字列分割

DNS TXT レコードの 1 文字列上限は 255 文字。これを超える長い公開鍵は複数文字列に分割する必要があります。Cloudflare UI は通常自動で分割しますが、API で登録する場合は要確認です。

失敗 4: Email Routing と SaaS 送信の混同

Email Routing は受信専用です。「Cloudflare で送信したい」場合は別途 Workers Mail API か外部 SaaS が必要になります。詳しくは Cloudflare Email Routing と認証 を参照。

DMARC との整合性

DKIM を設定したら、DMARC との整合性(alignment)も合わせて確認します。From ヘッダのドメインと DKIM 署名ドメインが一致していないと DMARC は fail します。詳しくは DMARC アライメント

設定後の運用は DMARC レポート解析ツール おすすめ 7 選 で fail の集中箇所を継続観察します。

まとめ

  • Cloudflare の DKIM 設定は受信(Email Routing)/ 送信(Workers)/ SaaS 連携 の 3 方式
  • 最も一般的なのは方式 C(CNAME 委任で SaaS の鍵を使う)
  • Cloudflare DNS では Proxy を必ず「DNS only」に
  • 自社管理が必要なら BYODKIM で TXT 直接登録
  • DMARC との整合性確認まで含めて 1 セット

設定したのに DKIM 署名が付かない・反映されない場合は、Cloudflare で DKIM が反映されないときの対処に切り分け手順をまとめています。

まずは現状を把握しましょう

自社ドメインのメール認証(SPF / DKIM / DMARC)の状態は、ドメイン番人の無料診断で 30 秒で確認できます。設定にお困りの場合はお問い合わせからご相談ください。

次の一歩は無料診断から。