DKIMレコードの生成方法
DKIM鍵を手作業で書き起こすことはありません。DKIMを有効化すると、メールプロバイダーが公開鍵/秘密鍵のペアを生成します。プロバイダーから渡された公開鍵を、プロバイダーが選んだセレクターにTXTレコードとして公開し、それが解決することを検証します。
このガイドは、DKIMに関する完全ガイドの一部です。関連: DKIMレコード、DKIMセレクター。
DKIM鍵を手作業で書き起こすことはありません。メールプロバイダーがあなたのために公開鍵/秘密鍵のペアを生成します。次に、あなたは公開鍵を、プロバイダーが選ぶセレクターホストにTXTレコードとしてDNSに公開し、プロバイダーは秘密鍵を保持して送信メールを署名します。 この単一の「公開して検証する」ループこそが、「DKIMレコードを生成する」ということの実際の意味のすべてです。
なぜDKIMを手作業ではなくプロバイダーで生成するのか
DKIMは、対になった暗号鍵で機能します。秘密鍵は送信プラットフォームの内部にとどまり、すべての送信メッセージを署名します。公開鍵はDNSに入り、受信サーバーがその署名を検証できるようにします。秘密鍵は、実際にメールを送信するシステムの内部に安全に存在しなければならないため、プロバイダーだけがペアを正しく生成できる場所です。プロバイダーは両方の鍵を作成し、秘密鍵の半分を署名エンジンが到達できる場所に保管し、公開する公開鍵の半分をあなたに渡します。
これが、自分でやる本当の「DKIMジェネレーター」のステップがない理由です。コンソールでDKIMを有効化することが生成を行い、あなたはその結果を公開するだけです。自前のメールサーバーを運用する上級者は、openssl(例えばopenssl genrsaと対応する公開鍵のエクスポート)で鍵ペアを手動で生成できますが、自分のMTAを運用しているのでない限り、プロバイダー経由の方法を守ってください。その方が速く、エラーが起きにくく、秘密鍵をあるべき場所に保ちます。
ステップバイステップ: DKIMの生成と公開
- プロバイダーのコンソールでDKIM(メール認証)を有効化する。 送信ドメインの「DKIM」「メール認証」または「ドメイン認証」の設定を探します。それをオンにすると鍵の生成がトリガーされます。
- 出力を読む: 公開鍵とセレクターホスト。 プロバイダーは公開鍵と、それを公開すべき正確なホスト名(
s1._domainkey.yourdomain.comのようなセレクター)を渡します。 - TXTレコードをDNSに公開する。 そのセレクターホストに、プロバイダーが提供した値でTXT(場合によってはCNAME)レコードを追加します。正確な形式、タグ、値の構造についてはDKIMレコードを参照してください。
- 無料のDKIMルックアップツールで検証する。 ドメインとセレクターを入力し、公開鍵がDNSで有効かつ読み取り可能であることを確認します。DNSの変更が伝播するには少し時間がかかることがあるため、すぐに見つからない場合は再確認してください。
- メールが署名されていることを確認する。 テストメッセージを送信し、ヘッダー(またはプロバイダーのダッシュボード)に
DKIM-Signatureヘッダーとdkim=passの結果があるか調べます。これで秘密鍵が署名しており、公開鍵が検証していることが確認できます。
一般的なプロバイダーでDKIMを生成する場所
| プロバイダー | DKIMを生成する場所 |
|---|---|
| Google Workspace | 管理コンソール > アプリ > Google Workspace > Gmail > メールを認証する |
| Microsoft 365 | Microsoft Defenderポータル > メールとコラボレーション > ポリシー > メール認証設定 > DKIM |
| ESP(SendGrid、Mailchimpなど) | 「ドメイン認証」の際に自動提供される — プラットフォームが鍵を生成し、公開するレコードを渡す |
Google WorkspaceとMicrosoft 365では、鍵を生成してから、表示されるレコードを公開します。ほとんどのESPでは、ドメイン認証がDKIM(多くの場合SPFやトラッキングドメインと一緒に)をまとめて処理するため、リストされたレコードを追加するだけです。
鍵の長さ: 1024 vs 2048
プロバイダーが選択肢を提供する場合は、2048ビットの鍵を選んでください。これらは1024ビットよりも意味のある形で強力であり、現在では業界全体で推奨されるデフォルトです。唯一の注意点は、2048ビットの公開鍵が1024ビットのものよりも長いことで、一部の古いDNSインターフェースは255文字を超えるTXTレコードに苦労します。値を複数の引用符付き文字列に分割する必要があるかもしれません。ほとんどの最新のDNSホストはこれを自動的に処理します。プロバイダーが1024ビットしか提供しない場合でも動作しますが、可能なときに2048ビットに移行してください。
健全に保つ
DKIMは設定して終わりではありません。鍵は定期的にローテーションしてください。多くのプロバイダーは現在では自動的にローテーションするので、単一の漏洩した鍵が無期限に悪用されることを防げます。そして、DKIMは3部構成のスタックの1本の脚であることを忘れないでください。有効なSPFレコード、DKIM、DMARCが連携して、あなたのメールが正当であることを証明します。どれか1本の脚が壊れると、配信性が損なわれます。
SPF側では、レコードが参照するサービスが多すぎると、SPFが静かに失敗する原因となる10回のルックアップ制限に注意してください。AutoSPFはあなたのSPFレコードを自動的にフラット化して維持し、その制限内に収めるため、SPFが下で静かに壊れることなく、DKIMとDMARCを署名とポリシーの側に集中させることができます。
よくある質問
DKIMレコードはどうやって生成しますか?
DKIMレコードは、メールプロバイダーのコンソール内でDKIMまたはメール認証を有効化することで生成します。プロバイダーが鍵ペアを作成し、公開鍵とセレクターホストを渡します。次に、その公開鍵をDNSにTXTレコードとして公開して検証すれば、設定が完了します。
DKIMジェネレーターツールは必要ですか?
通常は不要です。DKIMを有効化するとメールプロバイダーが鍵ペアを生成するため、単体のジェネレーターは冗長であり、秘密鍵を露出させる場合はリスクにさえなり得ます。手動での生成が必要なのは自前ホストのメールサーバーだけで、通常はopensslを使います。それ以外の人にとっては、プロバイダーのコンソールが正しく最も安全な方法です。
DKIMにはどの鍵の長さを使うべきですか?
プロバイダーが選択肢を提供する場合は常に2048ビットの鍵を使ってください。これらは1024ビットよりも強力で、現在の業界推奨です。唯一の欠点は、一部のレガシーなDNSインターフェースが複数の文字列に分割する必要があるかもしれない、より長いDNS値です。ほとんどの最新のDNSホストは、余分な手順なしに2048ビットのレコードを処理します。
生成した後、DKIMレコードはどこに置きますか?
プロバイダーが指定する正確なセレクターホスト(例: selector._domainkey.yourdomain.com)に、ドメインのDNSにTXTレコードとして公開します。レコードの値は、プロバイダーが提供した公開鍵です。追加した後は、それに頼る前にDKIMルックアップツールで検証し、有効かつ読み取り可能であることを確認してください。