■ Debian(Sarge) で apache2 SSL の設定
自署名でローカル用に SSL の環境を構築する。
一般に開放するような場合は、もっとずっとちゃんとやらないといけないので、あんまり参考になりませんというか、そんなに詳しく書いてないというか、全然責任持てないんで、ええ。
まずは apache2 のインストールから。
# aptitude install apache2
SSL サイト用の設定ファイルを作成する。雛形が用意されているので、それをコピーしてから編集すると良い。
# cd /etc/apache2/sites-available # cp /usr/share/doc/apache2/examples/ssl.conf.gz ssl.gz # gzip -d ssl.gz
最低限書き換える必要があるのはこのくらい。
--- ssl.conf 2006-04-18 15:28:22.000000000 +0900 +++ ssl 2006-04-18 14:37:45.000000000 +0900 @@ -80,14 +80,14 @@ ## SSL Virtual Host Context ## -<VirtualHost _default_:443> +<VirtualHost 192.168.145.128:443> # General setup for the virtual host DocumentRoot "/usr/share/apache2/default-site/htdocs" -ServerName www.example.com:443 +DocumentRoot "/path/to/root" +ServerName 192.168.145.128:443 ServerAdmin you@example.com -ErrorLog /var/log/apache2/error_log -TransferLog /var/log/apache2/access_log +ErrorLog /var/log/apache2/error_log.ssl +TransferLog /var/log/apache2/access_log.ssl # SSL Engine Switch: # Enable/Disable SSL for this virtual host. @@ -105,7 +105,7 @@ # in mind that if you have both an RSA and a DSA certificate you # can configure both in parallel (to also allow the use of DSA # ciphers, etc.) -SSLCertificateFile /etc/apache2/ssl.crt/server.crt +SSLCertificateFile /etc/apache2/ssl/apache.pem #SSLCertificateFile /etc/apache2/ssl.crt/server-dsa.crt # Server Private Key: @@ -113,7 +113,7 @@ # directive to point at the key file. Keep in mind that if # you've both a RSA and a DSA private key you can configure # both in parallel (to also allow the use of DSA ciphers, etc.) -SSLCertificateKeyFile /etc/apache2/ssl.key/server.key +SSLCertificateKeyFile /etc/apache2/ssl/apache.pem #SSLCertificateKeyFile /etc/apache2/ssl.key/server-dsa.key # Server Certificate Chain:
次は証明書の作成。自分しか使わないので、設問は適当で良いでしょ。apache2-ssl-certificate コマンドを実行すると、/etc/apache2/ssl/apache.pem というファイルが作成される。
# cd /etc/apache2 # mkdir ssl # apache2-ssl-certificate
モジュールとサイト別設定ファイルを有効にする。
# a2enmod ssl # a2ensite ssl
apache を再起動。
# /etc/rc2.d/S91apache2 force-reload
これでブラウザでアクセスすると SSL のアクセスになる、が、証明書の警告が表示される。盲目的に証明書を自分のブラウザに組み込む前に、その証明書が自分で作ったものかを確認する必要がある。
まずはサーバ上の SSL の指紋を確認しておく。以下のコマンドで確認出来る。
# openssl x509 -sha1 -noout -fingerprint -in /etc/apache2/ssl/apache.pem
それで、ここに現れる Fingerprint と、ブラウザの警告に表示される証明書の内容の Fingerprint(拇印とかフィンガープリントとか?)が一致するか確認して、本当に自分で用意した証明鍵かどうかを確認した方が良い。世の中何が起きるかわからない。そのための SSL なんだから、最初から慎重にしないとね。
以上。
Posted by Kyosuke Takayama at 2006-04-18 (Tue) 15:40 printable version