ディーキムノキーペアガイッチシテイルカカクニンスルホウホウDKIMを設定する際は、DKIM署名に使用する秘密鍵と、受信側がDKIM署名の検証に使用する公開鍵が、正しい組み合わせになっている必要があります。 秘密鍵と公開鍵の組み合わせが異なっていると、受信側でDKIM署名を正しく検証できず、DKIM認証が失敗する原因になります。 本記事では、OpenSSLを使用して秘密鍵から公開鍵を取り出し、確認対象の公開鍵と比較することで、正しいキーペアとなっているか確認する方法を紹介します。目次DKIMのキーペアとは事前準備秘密鍵と公開鍵がキーペアであるか確認する方法diffコマンドで1度に確認する方法まとめ■ 1. DKIMのキーペアとは◇ DKIMのキーペアとはキーペアとは、公開鍵暗号方式で使用する秘密鍵と公開鍵の組み合わせです。 秘密鍵と公開鍵は一組として作成されます。 DKIMでは、送信側が秘密鍵を使用してメールにDKIM署名を付与し、受信側がその秘密鍵と対になる公開鍵を使用してDKIM署名を検証します。◇ キーペアを確認する理由秘密鍵と公開鍵が一致していないとDKIM認証に失敗し、迷惑メール判定などを受けやすくなる可能性があります。 鍵ファイルの更新、サーバー移行、設定ファイルの差し替えなどを行った際は、秘密鍵と公開鍵がキーペアとなっているか確認すると安心です。■ 2. 事前準備本記事では、キーペアの確認にあたり、次のファイルおよびコマンドを使用します。対象の秘密鍵ファイル対象の公開鍵ファイルopensslコマンド ※コマンドがインストールされていない場合は「sudo dnf install openssl -y」を実行してください。diffコマンド ※コマンドがインストールされていない場合は「sudo dnf install diffutils -y」を実行してください。■ 3. 秘密鍵と公開鍵がキーペアであるか確認する方法秘密鍵には、その秘密鍵と対になる公開鍵の情報が含まれています。 秘密鍵から出力した公開鍵情報と、確認対象の公開鍵から出力した公開鍵情報が一致すれば、キーペアであると判断できます。 本手順では、opensslコマンドのpkeyオプションを使用して、それぞれの公開鍵情報を出力します。◇ 秘密鍵から公開鍵情報を出力する次のコマンドを実行すると、指定した秘密鍵から公開鍵情報が出力されます。# openssl pkey -in [秘密鍵ファイルパス] -pubout※オプションの説明pkey:秘密鍵や公開鍵を処理する場合に指定します。-in:読み込む鍵ファイルを指定します。-pubout:公開鍵情報を出力します。◇ 公開鍵から公開鍵情報を出力する次のコマンドを実行すると、指定した公開鍵が読み込まれ、公開鍵情報が出力されます。# openssl pkey -pubin -in [公開鍵ファイルパス] -pubout※オプションの説明pkey:秘密鍵や公開鍵を処理する場合に指定します。-pubin:入力ファイルを公開鍵として読み込みます。-in:読み込む鍵ファイルを指定します。-pubout:公開鍵情報を出力します。◇ 出力例どちらのコマンドも、通常は次のようなPEM形式で公開鍵を出力します。-----BEGIN PUBLIC KEY----- 公開鍵データ -----END PUBLIC KEY-----それぞれのコマンドで出力された公開鍵情報が一致していれば、指定した秘密鍵と公開鍵は正しいキーペアであると判断できます。 公開鍵情報が異なる場合は、正しいキーペアではありません。 ただし、公開鍵データは長い文字列になるため、目視による比較では差異を見落とす可能性があります。 次項では、opensslコマンドとdiffコマンドを組み合わせ、1度の入力で公開鍵情報を比較する方法を紹介します。■ 4. diffコマンドで1度に確認する方法前項では、秘密鍵と公開鍵からそれぞれ公開鍵情報を出力して比較しましたが、opensslコマンドとdiffコマンドを組み合わせることで、1度に比較することができます。◇ 実行コマンド# diff <(openssl pkey -in [秘密鍵ファイルパス] -pubout) \ <(openssl pkey -pubin -in [公開鍵ファイルパス] -pubout)上述したコマンドの出力結果に差分があるか、diffコマンドで確認します。◇ キーペアが一致している場合差分が表示されなければ、秘密鍵から取り出した公開鍵情報と、確認対象の公開鍵情報は一致しています。 この場合、指定した秘密鍵と公開鍵は正しいキーペアであると判断できます。 diffコマンドは何も出力せず、コマンドプロンプトに戻ります。# diff <(openssl pkey -in /etc/dkim/private.key -pubout) \ <(openssl pkey -pubin -in /etc/dkim/public.key -pubout) # ※何も出力されない終了ステータスを確認する場合は、diffコマンドの直後に次のコマンドを実行します。# echo $? 0終了ステータスが「0」の場合、差分は検出されていません。◇ 比較コマンドを実行できない場合比較コマンドで使用している「<(…)」は、Bashのプロセス置換です。 プロセス置換では、括弧内のコマンドの出力を、diffコマンドがファイルのように読み取って比較します。 プロセス置換に対応していないシェルで実行すると、構文エラーが発生する場合があります。 その場合は、Bashを起動してからコマンドを実行してください。# bash # diff <(openssl pkey -in [秘密鍵ファイルパス] -pubout) \ <(openssl pkey -pubin -in [公開鍵ファイルパス] -pubout)■ 5. まとめDKIMで使用する秘密鍵と公開鍵が正しいキーペアであるかは、秘密鍵から取り出した公開鍵情報と、確認対象の公開鍵情報を比較することで確認できます。 opensslコマンドでそれぞれの公開鍵情報を出力して差分を確認します。 差分がなければ、秘密鍵と公開鍵は正しいキーペアです。 差分があった場合は、鍵ファイルの指定や対象ドメイン、セレクタ名、使用している環境などを確認してください。 鍵ファイルの更新やサーバー移行、設定変更を行った際にキーペアを確認することで、鍵の取り違えによるDKIM認証の失敗を防ぐことができます。
技術情報
技術情報
DKIMのキーペアが一致しているか確認する方法
最終更新日:
2026年8月4日ディーキムノキーペアガイッチシテイルカカクニンスルホウホウ
DKIMを設定する際は、DKIM署名に使用する秘密鍵と、受信側がDKIM署名の検証に使用する公開鍵が、正しい組み合わせになっている必要があります。
秘密鍵と公開鍵の組み合わせが異なっていると、受信側でDKIM署名を正しく検証できず、DKIM認証が失敗する原因になります。
本記事では、OpenSSLを使用して秘密鍵から公開鍵を取り出し、確認対象の公開鍵と比較することで、正しいキーペアとなっているか確認する方法を紹介します。
目次
■ 1. DKIMのキーペアとは
◇ DKIMのキーペアとは
キーペアとは、公開鍵暗号方式で使用する秘密鍵と公開鍵の組み合わせです。
秘密鍵と公開鍵は一組として作成されます。
DKIMでは、送信側が秘密鍵を使用してメールにDKIM署名を付与し、受信側がその秘密鍵と対になる公開鍵を使用してDKIM署名を検証します。
◇ キーペアを確認する理由
秘密鍵と公開鍵が一致していないとDKIM認証に失敗し、迷惑メール判定などを受けやすくなる可能性があります。
鍵ファイルの更新、サーバー移行、設定ファイルの差し替えなどを行った際は、秘密鍵と公開鍵がキーペアとなっているか確認すると安心です。
■ 2. 事前準備
本記事では、キーペアの確認にあたり、次のファイルおよびコマンドを使用します。
※コマンドがインストールされていない場合は「sudo dnf install openssl -y」を実行してください。
※コマンドがインストールされていない場合は「sudo dnf install diffutils -y」を実行してください。
■ 3. 秘密鍵と公開鍵がキーペアであるか確認する方法
秘密鍵には、その秘密鍵と対になる公開鍵の情報が含まれています。
秘密鍵から出力した公開鍵情報と、確認対象の公開鍵から出力した公開鍵情報が一致すれば、キーペアであると判断できます。
本手順では、opensslコマンドのpkeyオプションを使用して、それぞれの公開鍵情報を出力します。
◇ 秘密鍵から公開鍵情報を出力する
次のコマンドを実行すると、指定した秘密鍵から公開鍵情報が出力されます。
※オプションの説明
pkey:秘密鍵や公開鍵を処理する場合に指定します。-in:読み込む鍵ファイルを指定します。-pubout:公開鍵情報を出力します。◇ 公開鍵から公開鍵情報を出力する
次のコマンドを実行すると、指定した公開鍵が読み込まれ、公開鍵情報が出力されます。
※オプションの説明
pkey:秘密鍵や公開鍵を処理する場合に指定します。-pubin:入力ファイルを公開鍵として読み込みます。-in:読み込む鍵ファイルを指定します。-pubout:公開鍵情報を出力します。◇ 出力例
どちらのコマンドも、通常は次のようなPEM形式で公開鍵を出力します。
それぞれのコマンドで出力された公開鍵情報が一致していれば、指定した秘密鍵と公開鍵は正しいキーペアであると判断できます。
公開鍵情報が異なる場合は、正しいキーペアではありません。
ただし、公開鍵データは長い文字列になるため、目視による比較では差異を見落とす可能性があります。
次項では、opensslコマンドとdiffコマンドを組み合わせ、1度の入力で公開鍵情報を比較する方法を紹介します。
■ 4. diffコマンドで1度に確認する方法
前項では、秘密鍵と公開鍵からそれぞれ公開鍵情報を出力して比較しましたが、opensslコマンドとdiffコマンドを組み合わせることで、1度に比較することができます。
◇ 実行コマンド
上述したコマンドの出力結果に差分があるか、diffコマンドで確認します。
◇ キーペアが一致している場合
差分が表示されなければ、秘密鍵から取り出した公開鍵情報と、確認対象の公開鍵情報は一致しています。
この場合、指定した秘密鍵と公開鍵は正しいキーペアであると判断できます。
diffコマンドは何も出力せず、コマンドプロンプトに戻ります。
終了ステータスを確認する場合は、diffコマンドの直後に次のコマンドを実行します。
終了ステータスが「0」の場合、差分は検出されていません。
◇ 比較コマンドを実行できない場合
比較コマンドで使用している「<(…)」は、Bashのプロセス置換です。
プロセス置換では、括弧内のコマンドの出力を、diffコマンドがファイルのように読み取って比較します。
プロセス置換に対応していないシェルで実行すると、構文エラーが発生する場合があります。
その場合は、Bashを起動してからコマンドを実行してください。
■ 5. まとめ
DKIMで使用する秘密鍵と公開鍵が正しいキーペアであるかは、秘密鍵から取り出した公開鍵情報と、確認対象の公開鍵情報を比較することで確認できます。
opensslコマンドでそれぞれの公開鍵情報を出力して差分を確認します。
差分がなければ、秘密鍵と公開鍵は正しいキーペアです。
差分があった場合は、鍵ファイルの指定や対象ドメイン、セレクタ名、使用している環境などを確認してください。
鍵ファイルの更新やサーバー移行、設定変更を行った際にキーペアを確認することで、鍵の取り違えによるDKIM認証の失敗を防ぐことができます。