Exim4 で DKIM
さくら VPS にて DKIM の設定したので記しときます。記述漏れはあるかもしれません。
今回は外に出ていくメール (Outgoing mail) に署名するだけです。
DKIM の基礎を学んだ上で読んでください。
参考
http://mikepultz.com/2010/02/using-dkim-in-exim/
http://www.atmarkit.co.jp/fsecurity/special/89dkim/dkim01.html
鍵の生成
cd /etc/exim4 sudo openssl genrsa -out dkim.private 1024 sudo chown root:Debian-exim dkim.private sudo chmod 640 dkim.private
所有者、所有グループ、mode は passwd.client などの設定に倣っています。(man exim4-config_files)
DNS TXT 登録用の公開鍵を抽出
sudo openssl rsa -in dkim.private -out dkim.public -pubout -outform PEM
Exim の設定
/etc/exim4/update-exim4.conf.conf で dc_use_split_config='false' のときは /etc/exim4/exim4.conf.localmacros に以下のように記述します。*1
DKIM_SELECTOR=******* DKIM_PRIVATE_KEY=/etc/exim4/dkim.private DKIM_CANON=relaxed DKIM_DOMAIN=********
dc_use_split_config='true' のときは /etc/exim4/conf.d の下にあるファイルのどれかに上記を書いておけばいいみたいです。*2
DNS の設定
次はさくら VPS の DNS に TXT レコードを追加します。
WEB の会員メニューからドメインの編集へ進みましょう。
エントリ名は [DKIM_SELECTOR]._domainkey
抽出した公開鍵の BASE64 部分の改行を取り除いて [public key] のところに入れてください。
v=DKIM1; t=y; k=rsa; p=[public key]
Exim のプロセスに設定を反映
sudo /etc/init.d/exim4 reload
で自動的に update-exim4.conf が実行され DKIM が有効になるはずです。
dc_use_split_config の設定いかんによっては undocumented line という警告メッセージが出力されます。
これが出ていても動作しますが、Exim4 on Debian 的には正しくない設定方法みたいです。
トラブルシューティング
最初、selector の設定を typo してて gmail に bad form と言われてしまったのですが、どこが間違っていたのかしばらく分かりませんでした。
check-auth _at_ verifier.port25.com に当該ドメインから空メールを送ると細かいところをチェックして通知してくれるので便利です。
その他、様子がおかしいときは /var/log/exim4 などへのログ出力を確認しましょう。
その他
update-exim4.conf を読んでたけど /etc/exim4 のハードコーディングが気になる。