DKIM署名機能

DKIM署名機能は DomainKeys Identified Mail に従い PMailServer2 の MTA から送信が行われるメールについて DKIM署名を行います。

本機能はベータ版です。実装が行われているのは DKIM の署名機能のみであり、DKIM の検証機能は実装されておりません。
注意事項


OpenSSL を利用した公開鍵、秘密鍵の作成方法

最低限 OpenSSL を操作できる知識は必要となります。「OpenSSL のインストール方法がわかりません」という場合は、検索等を行って下さい。

下記は「DKIM を運用する為の最低限のデータの作成方法と登録の説明です。」
詳しい説明やオプションの意味は OpenSSL のマニュアルや DKIM の設定方法などを検索して調べて下さい。
A.K.I Software では下記内容の詳細まではサポート致しませんし、下記通りに作成して問題が発生した場合の保証も致しません。

適当にシードを作成して秘密鍵を作成していますが、シードは無くとも鍵は作れます。

鍵bit数は 1024bit で作成していますが、2048bit 等で作成することもできます。ただし、2048bit の場合は、公開鍵が 255byte を超える為、DNS の TXT レコードに収まりません。
255byte 以上の TXT レコードに対応していない場合は 1024bit で作成を行って下さい。

  1. OpenSSL をインストールします。
  2. OpenSSL の bin フォルダに移動します。
  3. openssl sha1 * > 秘密鍵生成時のランダムデータへのフルパス
    と実行します。


    パーミッションエラーが出ていますが、これはフォルダだからです。 * についてはシードを作成するファイルへのパスを指定します。* はカレントフォルダを指定しています。

  4. openssl genrsa -rand ランダムデータへのフルパス 1024 > 秘密鍵へのフルパス
    と実行します。

    ここで指定した秘密鍵へのフルパスに、署名で利用する秘密鍵の pem ファイルが作成されます。

  5. 続けて
    openssl rsa -in 秘密鍵へのフルパス -pubout -out 公開鍵へのフルパス
    と実行します。

    警告が出ていますが、設定ファイルが無いというだけですので無視して下さい。
    writing RSA key と出れば成功です。

    ここで指定した公開鍵へのルパスに、DNS レコードに登録する公開鍵が作成されます。

  6. 上で作成した公開鍵をメモ帳で開きます。

    PublicKey

    この中身が公開鍵となります。

  7. まず、上下にある -----BEGIN PUBLIC KEY----- と -----END PUBLIC KEY----- を削除した上で、各行を全て繋げ1行にします。

  8. 上で作成した行の頭に v=DKIM1; k=rsa; p= を付けます。

    PublicKey2


    上の例では、t=y というオプションが追加されています。このオプションは「この DKIM は試験運用中です」を意味します。
    このオプションが指定されている場合、鍵屋設定が誤っていたとしても、DKIM の結果によって処理が左右されないように決められています。
    まずは t=y で設定を行い、問題が無ければ、t=y を削除するのが良いと思われます。(最初から無しでも当然OKです)
  9. 最後に出来上がった公開鍵の設定行を DNS サーバに TXT レコードとして登録を行います。
    この時 DNS サーバーへ登録するレコード名は、セレクタ._domainkey.ドメイン名を指定する必要があります。

  10. DNS への設定直後は配信先のサーバーでレコードを確認することが出来ない場合があります。まず秘密鍵、公開鍵を作成した上で、DNS に登録を行い、DNS サーバーの設定で内容が反映されたことを確認した上で、PMailServer2 側で DKIM を使うようにして下さい。