2008年6月28日土曜日

Debian etch Apache2 SSL サーバ証明のいろいろ備忘録

よしだメモ:
http://d.hatena.ne.jp/rudeboyjet/20070124/p1

のとおりにやって、サーバーキーを作る。

# vi /etc/ssl/openssl.cnf
[usr_cert]セクションのnsCertType=serverのコメントアウトを外す
[v3_ca]セクションのnsCertType=sslCA,emailCAのコメントアウトを外す
# cd /usr/lib/ssl/misc/
# ./CA.sh -newca
いろいろ質問されるので答える
CA certificate filename (or enter to create) // ブランクのままEnter
Enter PEM pass phrase: //適当に
Verifying - Enter PEM pass phrase: //確認
Country Name (2 letter code) [AU]: // JP
State or Province Name (full name) [Some-State]: //Osaka
Locality Name (eg, city) []: //Suita
Organization Name (eg, company) [Internet Widgits Pty Ltd]: //ブランク
Organizational Unit Name (eg, section) []: //ブランク
Common Name (eg, YOUR name) []: //web
Email Address []: //ブランク
A challenge password []: //ブランク
An optional company name []: //ブランク
Enter pass phrase for ./demoCA/private/./cakey.pem: //一番最初のパスフレーズを入れる


//パスフレーズが鬱陶しいので消す
# openssl rsa -in ./demoCA/private/cakey.pem -out ./demoCA/private/cakey.pem
Enter pass phrase for cakey.pem: //一番最初のパスフレーズを入れる


//証明書の作成
# openssl x509 -in ./demoCA/cacert.pem -out ./demoCA/cacert.crt -days 3650
(cacert.crtがSSLCertificateFileに書くファイル)
(cacert.pemがSSLCertificateKeyFile のところに書くファイル)

出来上がった公開鍵と暗号鍵をコピー
mkdir /etc/apache2/ssl
cp ./cacert.crt /etc/apache2/ssl
cd private/
mkdir /etc/apache2/ssl/private
cp ./cakey.pem /etc/apache2/ssl/private/


mods-available/ssl.confを以下箇所を修正

SSLCertificateFile /opt/apache2/conf/ssl/cacert.crt
SSLCertificateKeyFile /opt/apache2/conf/ssl/private/cacert.pem


2008.9.20追記:
Debian etch の apache2でsslを有効にするには以下のコマンド入力
sudo a2enmod ssl
sudo /etc/init.d/apache2 force-reload

ssl.confは使わずに、site-available/my-siteというのをdefaultを参考に作成し、そこでSSLのポートでアクセスしてきたときの処理を書いた。SSLCertificateなどの設定もそこに書いた。