DKIM DNSレコードジェネレーター
セレクター名と公開鍵(PEM形式)を入力するだけで、DKIM署名用のDNS TXTレコード(v=DKIM1; k=rsa; p=...)を自動生成します。255文字を超える長い公開鍵はBINDゾーンファイル形式で自動的に分割表記します。
DKIM用のDNSレコードを組み立てる
セレクター名と PEM 形式の公開鍵を入れると、DKIM 署名の検証に使う DNS の TXT レコード(`v=DKIM1; k=rsa; p=...`)を組み立てます。置き場所は `セレクター._domainkey.ドメイン` です。
**ここで必ず引っかかるのが、DNS の TXT は1つの文字列あたり255文字までという制限です。** RSA 2048ビットの公開鍵は Base64 で約390文字あるため、**そのままでは1つの文字列に収まりません。** ゾーンファイルでは括弧で囲んで複数の文字列に分けて書き、**受信側はそれらを連結して1つの値として読みます。** このツールはその分割まで行います。**もう一つ、絶対に間違えてはいけないのが、DNS に置くのは公開鍵だということです。** 秘密鍵は署名する側のサーバーにだけ置き、外へ出してはいけません。
使い方
- ドメインとセレクター名を入れる セレクターは任意の名前で、鍵を入れ替える際に新しい名前を使います。
- 公開鍵をPEM形式で貼り付ける **`-----BEGIN PUBLIC KEY-----` で始まる公開鍵です。秘密鍵ではありません。**
- 生成されたレコードを確認する **255文字を超える場合は、括弧で分割した形で出力されます。**
- DNSへ登録する `セレクター._domainkey.ドメイン` に TXT レコードとして置きます。
使いこなすためのヒント
- 公開鍵はopendkim-genkeyやOpenSSLの openssl genrsa → openssl rsa -pubout で生成したPEMファイルの中身をそのまま貼り付けられます。改行やヘッダー行は自動的に除去されます。
- テストモード(t=y)を有効にすると、DKIM検証に失敗した受信側サーバーが強く拒否せず様子見してくれる場合があります。本番運用へ切り替える前の検証期間に使うと安全です。
- 生成したレコードをDNSに登録した後は、本サイトのメール配信診断ツール(SPF/DKIM/DMARC診断)で実際に反映されているか確認することをおすすめします。
- 鍵長は1024bit・2048bitが一般的ですが、2048bit鍵は公開鍵の文字列が長くなり255文字を超えて複数の文字列に分割されるのが通常です。分割自体はエラーではありません。
- セレクター名は自由に決められますが、同じドメインで複数のメール配信サービスを使う場合は「google」「mailgun」のようにサービス名を含めると管理しやすくなります。
活用シーン
DKIMを新しく導入する
**鍵を作ったあと、DNSへどう書けばよいかが分かります。**
鍵をローテーションする
**新しいセレクターでレコードを足し、切り替え後に古いほうを消します。**
分割の書式を確かめる
長い鍵をどう分けるかは、手で書くと間違えやすい箇所です。
配信サービスの指示を検証する
**外部サービスから渡されたレコードが正しい形かを確かめられます。**
DKIMの用語
- セレクター
- 鍵を識別する名前です。**`selector._domainkey.example.com` の先頭にあたり、鍵ごとに別の名前を付けます。**
- 公開鍵
- **DNSに置くほうの鍵です。** 受信側がこれで署名を検証します。
- 秘密鍵
- 署名を作るための鍵です。**送信サーバーにだけ置き、決して公開してはいけません。**
- 255文字の制限
- **TXTレコードの1文字列あたりの上限です。** 超える場合は複数の文字列に分けて書きます。
- v=DKIM1
- レコードの版を示すタグです。先頭に置きます。
- k=rsa
- 鍵の種類です。RSA のほか、より短い Ed25519 を使う方式もあります。
よくある質問
余談ですが ― 公開鍵暗号がメールの「なりすまし」を防ぐ仕組み
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本の単純な仕組みでありながら大規模なメールインフラで長く使われ続けている理由の一つです。