SMTPS, IMAPS, POP3Sの設定を行う
Courier Mail Server ではSMTP, IMAP, POP3について、
STARTTLS/○○ over SSLによる通信の暗号化をサポートしています。
今回はこのあたりの設定方法を少し整理しておきます。自分用メモです。
対象設定ファイル
設定する必要がある設定ファイルは以下の通りです。
サービスの起動
起動時にサービスを有効にする必要があるため、
以下の設定を行う必要があります。
STARTTLSを使う場合
サーバー証明書の設定
「TLS_TRUSTCERTS」「TLS_CERTFILE」を設定します。
サービスごとにそれぞれ記述します。(esmptd/esmtpd-ssl/pop3d-ssl/imapd-ssl)
自分で作成した証明書を設定する場合は、ここに配置した証明書のパスを書けばOK。
自己署名のサーバー証明書を作り直してみる
自己署名されたサーバー証明書が予め配置されるようになっています。
以下のコマンドを使う事で、再度サーバー証明書を作成することができます。
- SMTP用(/usr/lib/courier/sbin/mkesmtpdcert)
- POP3用(/usr/lib/courier/sbin/mkimapdcert)
- IMAP用(/usr/lib/courier/sbin/mkpop3dcert)
以下は「mkesmtpdcert」コマンドの実行例です。
# /usr/lib/courier/sbin/mkesmtpdcert Generating a 1024 bit RSA private key ....++++++ ....................................++++++ writing new private key to '/usr/lib/courier/share/esmtpd.pem' ----- 512 semi-random bytes loaded Generating DH parameters, 512 bit long safe prime, generator 2 This is going to take a long time ...................+......................................................++*++*++*++*++*++* subject= /C=US/ST=NY/L=New York/O=Courier Mail Server/OU=Automatically-generated ESMTP STARTTLS key/CN=localhost/emailAddress=postmaster@example.com notBefore=May 15 13:22:20 2011 GMT notAfter=May 14 13:22:20 2012 GMT SHA1 Fingerprint=E2:9D:FB:26:AE:34:0C:20:10:A0:64:C6:4C:D2:AF:7C:1B:AB:B6:D5
※サーバー証明書は、初期設定のファイル名で作成されます。
中身はシェルスクリプトなので、見てみると面白いと思います。
おまけ:起動スクリプトの中身
よく見ると該当するサービスを起動させる場合は
「/etc/inid.d/courier」でも実行されるようになっていました。
(初回は必ず実行されるものと思われます)
[ SMTPS ] 76 if test "$esmtpdcert" = 1 77 then 78 # If we do not have a certificate, make one up. 79 80 if test ! -f ${datadir}/esmtpd.pem 81 then 82 if test -x $COURIERTLS 83 then 84 echo -n " generating-ESMTP-SSL-certificate..." 85 ${sbindir}/mkesmtpdcert >/dev/null 2>&1 86 fi 87 fi 88 fi 89 [ POP3S ] 141 case x$POP3DSSLSTART in 142 x[yY]*) 143 if test -x $COURIERTLS 144 then 145 # If we do not have a certificate, make one up. 146 147 if test ! -f ${datadir}/pop3d.pem 148 then 149 echo -n " generating-POP3-SSL-certificate..." 150 151 ${sbindir}/mkpop3dcert >/dev/null 2>&1 152 fi 153 154 ${sbindir}/pop3d-ssl start && \ 155 echo -n " pop3d-ssl" 156 fi 157 ;; 158 esac [ IMAPS ] 171 case x$IMAPDSSLSTART in 172 x[yY]*) 173 if test -x $COURIERTLS 174 then 175 # If we do not have a certificate, make one up. 176 177 if test ! -f ${datadir}/imapd.pem 178 then 179 echo -n " generating-IMAP-SSL-certificate..." 180 181 ${sbindir}/mkimapdcert >/dev/null 2>&1 182 fi 183 184 ${sbindir}/imapd-ssl start && \ 185 echo -n " imapd-ssl" 186 fi 187 ;; 188 esac
ここでコマンド発行して自己署名形式の証明書作っていたんですね。