apache2 + ssl

etch がリリースされた訳ですが, upgrade したら https 通信ができなくなってました. 設定方法変わったんですな. そんな訳でメモ.

openssl の設定

# vi /etc/ssl/openssl.cnf
[user_cert] セクションの
nsCertType=server のコメントを外す
[v3_ca] セクションの
nsCertType=sslCA,emailCA のコメントを外す.

その後, 証明書の発行. オレオレ証明書です.

# cd /usr/lib/ssl/misc
# ./CA.sh -newca

適当に答える.

# openssl rsa -in ./demoCA/private/cakey.pem -out ./demoCA/private/cakey.pem
 パスフレーズを消す
# openssl x509 -in ./demoCA/cacert.pem -out ./demoCA/cacert.crt
 証明書の作成
# openssl x509 -inform pem -in ./demoCA/cacert.pem -outform der -out ./demoCA/ca.der
 ブラウザに import する der の作成

apache2 の設定

# mkdir /etc/apache2/ssl
# cp ./demoCA/cacert.crt /etc/apache2/ssl
# mkdir /etc/apache2/ssl/private
# cp ./demoCA/private/cakey.pem /etc/apache2/ssl/private/
# cd /etc/apache2/site-available/
# cp /usr/share/apache2.2-common/exampless/apache2/extra/httpd-ssl.conf.gz .
# gzipd -d httpd-ssl.conf.gz
# mv httpd-ssl.conf ssl
# vi ssl

ssl では

  • /etc/apache2/ssl/cacert.crt を登録
  • /etc/apache2/ssl/private/cakey.pem を登録
  • VirtualHost や ServerName 等を設定する.

なんて所を弄る.

最後に設定をチェックして, モジュールとサイトを有効化し再起動

# apache2ctl -t
  Syntax Ok
# a2ensite ssl
# a2enmod ssl
# /etc/init.d/apache2 restart

https が有効になりました. ふう.