https プロトコルを apache に喋らせるための実装としては、mod_ssl と apache-ssl がある。debian はデフォルトでは apache-ssl のようだが、これだと、apache と apache-ssl という2つのサーバが起動することになり、玄箱にはキツイ。
dpkg –purge apache-ssl
apt-get install libapache-mod-ssl libapache-mod-ssl-doc
mod_ssl がインストールされると、/etc/apache/ssl.{crl,crt,csr,key,prm} というディレクトリが生成されるが、crt(証明書) csr(証明書発行要求) key(秘密鍵) 以外は良く分からない。imap の時と同じように、秘密鍵、CSRの順に作り、CAcertで証明書を発行してもらう。
今回はWebmailをSSL化するために使うため、それぞれのCNは webmail.hayate.mine.nuにする必要がある。
それぞれを webmail.{key,csr,crt}として保存する(webmail.key はRSAに非セキュア化しパスフレーズを削除しておく)。
mod_ssl をインストールした場合には、設定ファイルを自動生成してくれるわけではないため、手動で設定していく。
ほぼ、http://lists.debian.or.jp/debian-users/200112/msg00163.htmlの通りでOK。あと、http://www.todo.ne.jp/memo/も参考になる。
httpd.conf に、 Include /etc/apache/conf.d の一行を追加し、SSL とVirtualHost の設定ファイルを置くことにする。
ln -s /etc/squirrelmail/apache.conf /etc/apache/conf.d/squirrelmail.conf
cp /usr/share/doc/libapache-mod-ssl-doc/examples/mod-ssl.conf /etc/apache/conf.d/
バーチャルホストの設定については、http://www.araki.net/wiki/araki-wiliki.cgi?araki%3Atips%3Aapache2をヒントにした。
# diff /usr/share/doc/libapache-mod-ssl/example/sample-vhost.conf.gz vhost-ssl.conf
0a1,2
> NameVirtualHost *:443
>
6c8,9
#<VirtualHost _default_:443>
> <VirtualHost *:443>
8c11,13
DocumentRoot /usr/share/squirrelmail
> ServerName your.virtualhost.name
> #ServerAlias your.virtualhost.name
27c32,34
#SSLCertificateFile /etc/apache/ssl.crt/snakeoil-rsa.crt
> SSLCertificateFile /etc/apache/ssl.crt/your.server.crt
>
35c42,43
#SSLCertificateKeyFile /etc/apache/ssl.key/snakeoil-rsa.key
> SSLCertificateKeyFile /etc/apache/ssl.key/your.server.key