DKIM設定チェック(無料)
ドメインを入力して、DKIMレコードをチェックします。検出したセレクタを読み取り、見つからなければ代表的なセレクタを順に試します。メールヘッダーにあるセレクタを指定して照会することもできます。
DKIMレコードとは
DKIMレコードは、メールの署名検証に使う公開鍵をDNSで公開するレコードです。公開鍵は、セレクタごとに決まるDNS名に置かれます。このツールは、検出したセレクタと入力したセレクタのレコードを調べます。ただし、本番の送信経路で実際に署名されているか、受信側で署名の検証に成功したかを確かめるには、実際のメールでのテストが必要です。
DKIMチェック結果の見方
| 結果 | 意味 | 対処法 |
|---|---|---|
| 公開鍵を検出 | 検出したセレクタで、公開鍵を読み取れるDKIMレコードが見つかりました。 | 本番経路から新しいメールを送り、受信側で同じd=ドメイン・s=セレクタのdkim=passが記録されるか確認します。 |
| レコード未検出 | 検出したセレクタにも、続けて試した代表的なセレクタにも、利用できるレコードはありませんでした。 | d=とs=を実際のメールか送信サービスで確認します。独自のセレクタは、個別の照会が必要な場合があります。 |
| 形式エラー・不完全 | TXTレコードの値を、送信元が想定する公開鍵として解釈できません。 | 送信サービスが指定する値と1バイトずつ比較し、誤って入った引用符や改行を削除します。修正後のレコードを公開し、TTLの経過を待ちます。 |
| p=の値が空 | セレクタが失効しており、検証に使う公開鍵がありません。 | その鍵での署名を停止するか、移行先のセレクタを有効にしてから再テストします。 |
| DNSは正常、検証は失敗 | レコードはありますが、テストしたメールの署名を受信側で検証できませんでした。 | メールが通った経路、d=・s=の値、ボディハッシュの検証結果、署名後の改変、DMARCアライメントを確認します。 |
DKIMチェックの進め方
まず、検証したい本番経路から送信したメールを用意します。その DKIM-Signature ヘッダーにある d= (署名ドメイン)と s= (セレクタ)を控えます。次に署名ドメインを入力し、診断で返ったセレクタとメールの値を照合します。該当するセレクタがなければ、結果の下のセレクタ欄に入力して直接照会します。
結果が送信サービスの管理画面と食い違う場合は、権威DNSサーバーに直接問い合わせ、レコード名と値を正確に比較してください。よくある原因は、セレクタの誤り、署名ドメインではなくルートドメインでの照会、無効な宛先を指す送信サービスのCNAME、権威ゾーンへの未反映です。
このツールで確認できること
このツールでわかるのは、検出したセレクタで公開DNSが返す内容と、使える鍵があるかどうかです。すべてのセレクタの検出、全送信システムの署名、受信側による署名の受け入れ、DKIMのDMARCアライメントまでは証明できません。それには、新しく届いたメールの元のヘッダーが必要です。
実際のメールでDKIMを検証
重要な本番経路ごとに同じ種類のメールを送り、受信側で元のソースを保存して、信頼できるヘッダーを確認します( Authentication-Results )。 dkim=none は通常、その経路で署名がないことを示します。 dkim=fail の場合は、記録された理由、セレクタの照会結果、署名後の改変の有無を確認します。passでも、アライメントは別途必要です。DKIMの d= ドメインと表示上のFromドメインの一致を、 DMARCチェック とメールの認証結果で確認します。
DKIM関連のチェックと対処法
メール認証ナレッジベース
すべてのDKIMセレクタを確認できますか?
このツール単体ではできません。ドメイン診断では検出したセレクタを表示し、1つも検出できない場合はgoogle、selector1、k1など代表的な20個のセレクタを試します。それでも独自のセレクタは漏れることがあるため、実際のメールのDKIM-Signatureヘッダーにあるs=の値を、結果の下のセレクタ欄に入力してください。
DKIMセレクタはどう調べますか?
そのドメインから送信したメールを開いてソースを表示し、DKIM-Signatureヘッダーを探します。s=タグがセレクタ、d=タグが署名ドメインです。レコードはselector._domainkey.domainに置かれるため、s=s1、d=example.comならs1._domainkey.example.comです。送信サービスのDKIM設定画面にも同じ値が表示されます。
DKIMレコードがあれば、署名されていると言えますか?
いいえ。公開鍵で証明できるのは、そのセレクタのレコードをDNSが返すことだけです。本番の送信経路すべてで署名が付くか、同じセレクタを使っているか、メールの改変後も署名が有効か、受信側でpassするかまでは証明できません。新たに配信されたメールで別途検証してください。
DKIMのp=が空なのは何を意味しますか?
p=を空にすると、そのセレクタの公開鍵は失効します。対応する秘密鍵でまだ署名している送信元は、検証に失敗します。セレクタの削除や後継セレクタの有効化の前に、意図した廃止かどうかを確認してください。
DKIMはpassでもDMARCがfailする理由
DMARCでは、passしたDKIMのd=ドメインが表示上のFromドメインと一致する必要があります。送信サービス側の署名ドメインでDKIMがpassしても、アライメントが取れずDMARCは失敗することがあります。両者を正確に比較し、対応していればFromドメインと一致する独自署名を設定します。
dkim=noneと表示されたらどうすればよいですか?
まず、メールにDKIM-Signatureヘッダーがあるか確認します。なければ、その本番経路でDKIMを有効にしてください。ある場合は、受信側が付与した信頼できるAuthentication-Resultsヘッダーを見ているか確認し、受信側が別の認証結果を記録していないか調べます。
DKIMが正常なら、必ず受信トレイに届きますか?
いいえ。DKIMは認証シグナルの1つです。受信側は、DMARCアライメント、SPF、送信元とIPのレピュテーション、受信者の反応、内容、独自のポリシーも評価します。有効なレコードとpassした署名は必要な根拠ですが、到達を保証するものではありません。
DKIMレコードに含まれるタグと、その意味を解説します。
- v
- DKIMのバージョンを示すタグで、値は常に1と定められています。
- p
- 公開鍵のタグです。DKIMの設定時に生成される文字列で、空のままでは有効になりません。
- t
- フラグをコロン区切りで列挙するタグです。定義済みのフラグは「y」と「s」で、未定義のフラグは無視されます。
- s
- レコードが対象とするサービスの種類を示すタグです。指定がない種類や不明な種類は、受信サーバーが無視します。
- h
- 許可するハッシュアルゴリズムを指定するタグで、既定ではすべて許可します。一覧は送信側が決め、受信側は不明なアルゴリズムを無視します。
- n
- 管理者向けの任意のメモ欄です。必要なときだけ使うことを推奨します。