DKIM DNSレコードジェネレーター

セレクター名と公開鍵(PEM形式)を入力するだけで、DKIM署名用のDNS TXTレコード(v=DKIM1; k=rsa; p=...)を自動生成します。255文字を超える長い公開鍵はBINDゾーンファイル形式で自動的に分割表記します。

Tips

  • 公開鍵はopendkim-genkeyやOpenSSLの openssl genrsa → openssl rsa -pubout で生成したPEMファイルの中身をそのまま貼り付けられます。改行やヘッダー行は自動的に除去されます。
  • テストモード(t=y)を有効にすると、DKIM検証に失敗した受信側サーバーが強く拒否せず様子見してくれる場合があります。本番運用へ切り替える前の検証期間に使うと安全です。
  • 生成したレコードをDNSに登録した後は、本サイトのメール配信診断ツール(SPF/DKIM/DMARC診断)で実際に反映されているか確認することをおすすめします。
  • 鍵長は1024bit・2048bitが一般的ですが、2048bit鍵は公開鍵の文字列が長くなり255文字を超えて複数の文字列に分割されるのが通常です。分割自体はエラーではありません。
  • セレクター名は自由に決められますが、同じドメインで複数のメール配信サービスを使う場合は「google」「mailgun」のようにサービス名を含めると管理しやすくなります。

よくある質問

同じドメインで複数のDKIM鍵を使い分けるための識別子です。DNS上では「セレクター._domainkey.ドメイン」という名前でレコードが公開され、送信メールのDKIM-Signatureヘッダーに記載された s= タグの値と一致するセレクターの公開鍵で署名が検証されます。

DNSのTXTレコードは1つの文字列(character-string)が255バイトまでという制限があるため、超える分は複数の引用符付き文字列に分割し、隙間なく連結して1つのTXTレコードとして登録します。本ツールが生成するBIND形式の表記はこの分割にすでに対応しています。

いいえ。本ツールはDNSに公開するレコードを組み立てるだけで、秘密鍵の生成は行いません。秘密鍵はopendkim-genkeyやOpenSSL等、信頼できるツールを使い自分の環境内で安全に生成・保管してください。

DKIM導入直後、実際の送信環境で正しく署名・検証できているかを確認する期間に使います。一部の受信側はt=yが付いたドメインからのDKIM検証失敗を通常より緩やかに扱うため、本番運用への移行前の安全弁として機能します。

現時点では対応する送受信サーバーが幅広いRSA(k=rsa)が実務上の標準です。Ed25519(k=ed25519、RFC 8463)は鍵長が短く署名も高速ですが、対応していないメールサーバーも存在するため、双方の環境で動作確認できる場合にのみ採用を検討してください。
ツールくん

余談ですが ― 公開鍵暗号がメールの「なりすまし」を防ぐ仕組み

DKIM(DomainKeys Identified Mail)は2004年にYahoo!とCiscoが個別に開発していた技術(DomainKeysとIdentified Internet Mail)を統合する形で標準化されました。仕組みの核心は公開鍵暗号です。送信側はメールのヘッダーと本文の一部から計算したハッシュ値を秘密鍵で暗号化し、DKIM-Signatureヘッダーに添付します。受信側はDNSで公開されている公開鍵でこの署名を検証し、鍵ペアが正しく対応していれば「送信後に内容が改ざんされていない」ことを数学的に確認できます。

SPFが送信元IPアドレスというネットワークレベルの正当性を検証するのに対し、DKIMはメールの内容そのものに電子署名を施す点が本質的に異なります。そのためメールが正規の中継サーバーを何度も転送された場合でも(SPFはこの種の転送に弱いことが知られています)、DKIM署名は本文が変更されない限り有効性を保ちます。この特性から、DKIMはメーリングリストなど転送を伴う配信経路でもSPFより信頼性の高い認証手段として評価されています。

セレクターという仕組みも実務上重要です。1つのドメインが複数のメール配信サービス(自社サーバー・Gmail・SendGridなど)を併用する場合、それぞれに別々の鍵ペアとセレクター名を割り当てることで、サービスごとに独立して鍵を無効化・更新できます。1つの鍵が漏えいしても他のセレクターには影響しないという運用上の柔軟性が、DKIMがDNSレコード1本の単純な仕組みでありながら大規模なメールインフラで長く使われ続けている理由の一つです。