2014年7月18日金曜日

FreeBSD Courier-Imap の証明書を再発行

2008年から使い続けていた Courier-Imap の証明書を再発行しようとしたところ、全然昔と様子が違っていて驚いてしまいました。また証明書を発行するシェル・スクリプト(mkimapdcert)にもバグがあり、単純に発行できませんでした。

ここで備忘録として作業を記述しておきたいと思います。

Courier-Imap の設定ファイルの場所は、/usr/local/etc/courier-imap です。ここで必要とする設定ファイルを用意します。ひな形(.dist)からコピーをして作ります。インストール時に自動的に作成されている場合もあります。なお私のように古いバージョンをインストールしたときには、古い設定ファイルがそのまま残っていますので新しいひな形のものに置き換える必要がありました。
# cd /usr/local/etc/courier-imap
# cp authdaemonrc.dist authdaemonrc
# cp imapd-ssl.dist imapd-ssl
# cp imapd.cnf.dist imapd.cnf
# cp imapd.dist imapd
# cp pop3d-ssl.dist pop3d-ssl
# cp pop3d.cnf.dist pop3d.cnf
# cp pop3d.dist pop3d

imapd.cnf の設定ファイルの一部(地域やメールアドレス)を編集しなおしました。過去の imapd.cnf とは記述の内容が大変あっさりしています。[  ] で囲まれたセクションも存在しません。
organization = "Courier Mail Server"
unit = "Automatically-generated IMAP SSL key"
locality = "HIROSHIMA"
state = "HRSM"
country = JP
cn = "localhost"
serial = 001
expiration_days = 365
email = "postmaster@example.com"
注意点:1行目の organization = "Courier Mail Server" の部分は証明書の名前となる部分で、多くの人がこのサンプルで証明書を作っている可能性があります。そこで、この部分は必ず作成者が必ず名称を変更するようにしましょう。証明書の衝突の可能性があります。

次に証明書などを保管するディレクトリ(/usr/local/share/courier-imap/)へ移動します。ここで証明書(imapd.pem)が現存すると証明書を作るのを中止してしまうため、この証明書(imapd.pem)を削除します。もちろん初めて作成する場合には削除するべきものがありません。
# cd /usr/local/share/courier-imap/
# ls (証明書が存在か?確認します)
# rm imapd.pem

証明書を作成する前に証明書を作成するシェルスクリプト(mkimapdcert)を修正します。なお修正しなかった場合には次のようなエラーが発生します。
Invalid option 'sec-param=high'
Try `/usr/local/bin/certtool --help' for more information.

/usr/local/share/courier-imap/mkimapdcert を修正します。
68行目にある「 --sec-param=$BITS 」を修正します。
イコールの部分が不要でこの部分を空白(スペース)に置き換えます。
--sec-param=$BITS
    ↓
--sec-param $BITS

以上で修正は終了です。証明書を発行 するシェルスクリプトを実行させます。
# /usr/local/share/courier-imap/mkimapdcert

実行が完了すると証明書(imapd.pem)ができていますので確認してください。なお次の二つのファイルが証明書を発行するときに作る一時的なファイルです。正常に証明書が作成されていると自動的に削除されます。
  • imapd.cert
  • imapd.key

証明書を作り直すと Thunderbird などのメール・クライアントは、証明書の再確認を求めて来ますので、それに応答しておきます。

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。