mod_perlはちゃんと動作したので、次はmod_sslを動かしてみる。
数年前まで仕事でWebサイトを運用していたので、毎年VeriSignに証明書を申請していたのだけれど、もうすっかり手順を忘れてる。
以下のVeriSignのページを参考に設定した。
(1) 疑似乱数ファイルの作成
まあ、なんでもいいんだけど、以下の方法で作成。
$ openssl md5 /var/log/* > rand.dat
(2) 秘密鍵の生成
今やキー長は2048bitじゃないとVeriSignは申請を受け付けないようですな。
$ openssl genrsa -rand rand.dat -des3 2048 > key.pem
パスフレーズの入力を求められるので、適当に入れておく。
(3) CSRの生成
$ openssl req -new -key key.pem -out csr.pem
パスフレーズの入力を求められるので、先ほど入れたものを入力する。
その後、いろいろ聞かれるけど、いんちき証明書を作るだけなので、適当に入れればよろしい。ただし、Common Name にはホスト名を入れること。
Country Name (2 letter code) [AU]:JP State or Province Name (full name) [Some-State]:Kanagawa Locality Name (eg, city) []:Yokohama Organization Name (eg, company) [Internet Widgits Pty Ltd]:Koba-Lab Organizational Unit Name (eg, section) []: Common Name (eg, YOUR name) []:kathy.local Email Address []: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:
(4) 証明書の生成
ここで本来はVeriSignなどの認証機関にCSRを送って証明書をもらうのだけど、いんちき証明書をつくります。
$ openssl req -new -x509 -days 365 -key key.pem -out cert.pem
パスフレーズに続いて、同じようにいろいろ聞かれるので、同じように答えておく。
Country Name (2 letter code) [AU]:JP State or Province Name (full name) [Some-State]:Kanagawa Locality Name (eg, city) []:Yokohama Organization Name (eg, company) [Internet Widgits Pty Ltd]:Koba-Lab Organizational Unit Name (eg, section) []: Common Name (eg, YOUR name) []:kathy.local Email Address []:
(5) 秘密鍵からパスフレーズをはずす
秘密鍵にパスフレーズがついたままだと、自動でブートできないので、はずしてしまいます。
$ openssl rsa -in key.pem -out key.pem
(6) httpd.conf の設定
以下の行を有効にする(多分最初から有効になってるけど)。
LoadModule ssl_module libexec/apache2/mod_ssl.so
SSLの設定は別ファイルにするようになっているので、その設定を生かす。
# Secure (SSL/TLS) connections Include /private/etc/apache2/extra/httpd-ssl.conf