メール到達率とDNS

DKIM 鍵生成ツール: DNS 設定と検証

著者:Alexey Bulygin
DKIM 鍵ペアとセレクター、DNS の公開鍵

DKIM 鍵生成ツールを探しているなら、ドメインでまだ署名していないか、署名が受信側の検証を通らないのかもしれません。どちらも配信に影響する可能性があります。署名のないメールは厳しく判定される場合がありますが、DKIM の失敗が必ず DMARC の失敗になるわけではありません。アライメントを満たす SPF が成功すれば DMARC は成功できます。認証の不備で、パスワード再設定、請求書、顧客向けメールが迷惑メールや隔離の対象になることがあります。

設定を段階に分ければ、取り組みやすくなります。DKIM 鍵生成ツールは、送信システム用の秘密鍵と DNS に公開する対応した公開鍵を作成します。受信サーバーは正規化ルールに従い、署名対象データの署名を検証します。表示上の差出人の個人としての身元を証明するものではありません。

メール環境を構築している段階なら、まずビジネスメールのガイドをご覧ください。独自ドメインで既にメールを運用している場合は、DKIM 鍵生成ツールの出力、鍵長の選び方、セレクターの役割、DNS への公開手順を確認できます。

DKIM 鍵生成ツールが行うこと

DKIM 鍵生成ツールは暗号鍵のペアを作成します。秘密鍵は送信システムに保管し、送信メールの署名に使います。公開鍵はセレクターの名前で DNS に公開し、受信サーバーがメールヘッダー内の DKIM 署名を検証できるようにします。

特別な魔法ではありません。適切なDKIM 鍵生成ツールには、次の三つの役割があります。

  1. 送信システムで使える秘密鍵を生成する。
  2. 対応する公開鍵を取り出す。
  3. 公開鍵を selector._domainkey.example.com に公開できる DNS TXT レコードに整える。

注意が必要なのは数学的な処理より設定です。セレクター、DNS ホスト名、改行の扱い、送信システムを一致させて、実際のメールで署名を検証できる状態にします。

RFC 6376 では、セレクターによって複数の鍵を公開し、段階的に切り替えられます。RFC 8301 は RSA 鍵に最低 1024 ビットを要求し、2048 ビットを推奨しています。DKIM 鍵生成ツールがまだ 512 ビットや SHA-1 を勧めるなら、別のツールを選びましょう。

出力はどのような形になるか

適切なDKIM 鍵生成ツールは、署名用の秘密鍵と DNS に登録できる公開鍵レコードを出力します。登録先はドメインのルートではなく、セレクターのホスト名です。公開鍵は p= タグに入れます。

レコードの基本形は次のとおりです。

Host: tm2026._domainkey.example.com
Type: TXT
Value: v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A...

次の OpenSSL の手順なら、ウェブ上のDKIM 鍵生成ツールに秘密鍵を委ねず、ローカルで鍵ペアを生成できます。最後のコマンドは秘密鍵の構成要素も表示するため、出力を共有したり公開ログに保存したりしないでください。

openssl genrsa -out dkim-private.pem 2048
openssl rsa -in dkim-private.pem -pubout -out dkim-public.pem
openssl rsa -in dkim-private.pem -text -noout

続いて、公開鍵だけを多くの DNS 管理画面が受け付ける単一行の値に変換します。

awk 'NF {sub(/\r/, ""); printf "%s",$0;}' dkim-public.pem \
| sed 's/-----BEGIN PUBLIC KEY-----//; s/-----END PUBLIC KEY-----//g'

長い TXT 値は引用符付きの文字列に分割できますが、全体が同じ TXT リソースレコードに属している必要があります。鍵の途中に余分な空白を入れると、検証できなくなる場合があります。

考え方の例: セレクターは鍵を示す名前であり、鍵そのものではありません。署名に s=tm2026 とあれば、受信側は tm2026._domainkey.yourdomain.com を検索します。利用できる正しいレコードがなければ DKIM は検証に成功しません。

セレクターと鍵長の選び方

適切なDKIM 鍵生成ツールは 2048 ビットの RSA 鍵を生成します。SHA-256 は署名システムで使うハッシュ方式であり、鍵生成時に決まるものではありません。切り替えが分かりやすいセレクター名を選び、バージョン名として扱いましょう。

鍵の利用時期や用途が分かる名前が便利です。

  • tm2026
  • app1q1
  • marketing2026

避けたい使い方は次のとおりです。

  • default を更新計画なしで使い続ける
  • 本番環境で test を使う
  • すべての送信システムで dkim を共有する
選択肢推奨されるか理由
1024 ビット RSA制約がある場合のみ最低条件は満たしますが、新しい設定の目標には適しません。
2048 ビット RSA推奨多くのドメインや DNS プロバイダーで使いやすい選択肢です。
単一の固定セレクター非推奨鍵の切り替えや漏えいへの対応が複雑になります。
バージョン付きセレクター推奨古い鍵を削除する前に新しい鍵を公開できます。

RFC 8301 は最低 1024 ビット、推奨 2048 ビットとしています。Google の一括送信者向け要件には DKIM と SPF が含まれ、個人用 Gmail アカウントへの直接送信では、少なくとも SPF または DKIM が From ドメインとアライメントを満たす必要があります。詳しくは Google の送信者ガイドライン FAQをご確認ください。

DKIM 鍵生成ツールを選ぶ際は、鍵を作れるかどうかだけでなく、2048 ビットへの対応、分かりやすいセレクター名、実行しやすい切り替え手順を重視しましょう。

DNS を公開してから署名を有効にする

DKIM 鍵生成ツールで完了するのは設定の一部です。送信システムが実際に使うセレクターのホスト名に TXT を公開し、DNS キャッシュの影響も考慮して公開鍵を取得できることを確認してから、新しい署名を有効にします。

よくある間違いは次のとおりです。

  1. @ に TXT を登録し、selector._domainkey に登録しない。
  2. Base64 の鍵だけでなく、PEM の囲みも含めて DNS に貼り付ける。
  3. DNS が参照できるようになる前に署名を有効にする。
  4. メールサービスで別のセレクターを指定する。

TrekMail のドメイン設定では、DNS の手順に必要なレコードが表示されます。ドメインの追加には DKIM TXT 値の説明もあります。持ち込み SMTP では、実際の送信プロバイダーの鍵とセレクターを使ってください。保存後は組み込みの検証を実行し、不明点があればDNS ステータス確認を利用します。

転送では SPF が失敗しても、署名対象の内容が正規化ルール上維持されていれば DKIM が成功する場合があります。DKIM ドメインもアライメントを満たせば DMARC は成功できますが、DKIM pass だけでは十分ではありません。転送の詳しい説明はドメインのメールを Gmail に転送するをご覧ください。

DKIM 鍵が実際の送信で使われているか確認する

DKIM 鍵生成ツールで作成した鍵を公開したら、実際のメールヘッダーを確認します。DNS が正しいだけでは署名が有効とは分かりません。dkim=pass を確認し、DMARC に必要なドメインのアライメントも別途調べます。

Gmail のメールボックスに送信し、元のヘッダーを開きます。結果の一例です。

Authentication-Results: mx.google.com;
       dkim=pass header.i=@example.com header.s=tm2026 header.b=...
       spf=pass smtp.mailfrom=example.com
       dmarc=pass header.from=example.com

DKIM が失敗したら、順に確認します。

  1. DKIM-Signature ヘッダーの s= セレクターを調べる。
  2. dig で正確な DNS ホスト名を検索する。
  3. DNS の公開鍵が送信側の秘密鍵と対応しているか確認する。
  4. 送信側が d= に必要な署名ドメインを指定しているか確認する。
  5. メーリングリスト、フッター追加処理、リレーが署名対象のヘッダーや本文を変更していないか調べる。
dig +short TXT tm2026._domainkey.example.com

説明が不足したDKIM 鍵生成ツールでは、原因の特定に手間がかかります。セレクターのホスト名、検証方法、アライメントを理解する必要があります。d= ドメインと表示上の From ドメインは、緩和モードでは同じ組織ドメイン、厳格モードでは完全一致が必要です。SPF が成功しアライメントを満たせば、DKIM のアライメントがなくても DMARC は成功できます。

ほかの設定は、独自ドメインのメール作成メール転送、TrekMail の迷惑メール判定のトラブルシューティングも参考になります。

個別ツールとまとまった設定フローの違い

単独のDKIM 鍵生成ツール、DNS 管理画面、アプリとニュースレターで別々の SMTP サービス、未完成の DMARC ポリシーを組み合わせると、調整する箇所が増えます。プロバイダー変更、鍵の切り替えミス、転送によって以前からの認証不備が表面化することがあります。

ドメイン、メールボックス、DNS 確認、送信設定を共通のフローで管理すると、設定間のずれを減らしやすくなります。

TrekMail では、プランや設定に応じて次の機能を利用できます。

  • 独自ドメインと IMAP メールボックスを同じ画面で管理。
  • Nano の持ち込み SMTP、または対象の有料プランの管理型 SMTP。
  • 古いメールを IMAP で取得する組み込み移行機能。
  • 対応プランでのキャッチオール、メールボックス転送、API アクセス。
  • SPF、DKIM、DMARC を扱う DNS と認証の設定フロー。

複数ドメインの管理では、設定をそろえることが特に重要です。代理店や MSP では費用と管理作業も検討する必要があります。価格の目安として TrekMail は Starter を月額 $3.50 から、持ち込み SMTP の Nano を $0、最大 10 ドメインと 5GB の保存容量で案内しています。有料プランには 14 日間の試用が提供される場合があり、クレジットカードが必要です。Nano はカード不要の選択肢として案内されています。選択前に最新の価格、条件、機能をご確認ください。

古いメールの移行には TrekMail のIMAP 移行フローを使い、Gmail、Microsoft 365、その他の IMAP サービスから取り込めます。実行できるかは移行元の認証方式や取得可能なメールに依存します。

鍵の切り替え、失効、継続的な保守

DKIM 鍵生成ツールは初回設定だけのものではありません。計画的に鍵を交換し、古いセレクターを順序立てて削除します。必要に応じて送信システムごとにセレクターを分けると、障害の影響や原因を絞りやすくなります。

手順の例です。

  1. 新しいセレクターで新しい 2048 ビットの鍵を作る。
  2. 新しい公開鍵を DNS に公開する。
  3. 参照できることを確認し、送信側を新しいセレクターに切り替える。
  4. 新しいメールで dkim=pass を確認する。
  5. キュー内の署名済みメールに必要な期間、古いセレクターを残す。
  6. 計画した移行期間後に古い公開鍵を削除する。

秘密鍵が漏えいしたら、新しい鍵へ切り替え、状況に応じて古い鍵を失効させます。バージョン付きセレクターなら、default の使い続けより対応しやすくなります。

DKIM 鍵生成ツールで不適切な送信運用まで直せるわけではありません。認証は基本ですが、評判も重要です。Google のガイドでは迷惑メールの報告、SPF、DKIM、DMARC を扱っています。運用では正しい DNS、無理のない送信量の拡大、受信を希望する相手への送信にも気を配りましょう。

まとめ: 鍵生成後に設定全体を検証する

DKIM 鍵生成ツールは出発点です。正しいセレクター、公開済みの公開鍵、送信側の対応する秘密鍵、実際のメールでの dkim=passDMARC アライメントが重要です。

2048 ビットの鍵を生成し、バージョン付きセレクターを使い、TXT を正しく公開して実際のヘッダーを確認します。共通のフローは複数プロバイダーやドメインの管理を簡単にする可能性があります。TrekMail はプランに応じて独自ドメイン、IMAP メールボックス、共有ストレージ、IMAP 移行、DNS 確認を提供し、ユーザーごとの課金ではないプラン体系を採用しています。開始条件は trekmail.net、プラン比較は trekmail.net/pricing で確認できます。

この記事を共有

投稿 共有 共有

TrekMail の運用と保護に必要な技術を使用します。確認すると、Cookie ポリシーに記載された限定的な分析と広告測定も許可されます。

TrekMail にサインイン

ダッシュボード、メールボックス、DNS にアクセスできます。

または

12 文字 パスワードが一致

または

再設定メールを送信しました

このメールアドレスのアカウントが存在する場合、パスワード再設定の手順をお送りしました。

続行すると、TrekMail の 利用規約 および プライバシーポリシーに同意したものとみなされます.