2011年4月12日火曜日

ServersMan@VPS(debian-32bit)を好き勝手に設定 - その1 - https

Serverman@VPS(debian-32bit)では標準ではhttpsに対応していなかったので、
セキュリティーの一環ということで対応させておきました。
以下で手順を記述しておきます。

最初にopensslの設定です。
/etc/ssl/openssl.cnf の [usr_cert] セクションの nsCertType アイテムについて

nsCertType = server

とします。
同様に [v3_ca] セクションの nsCertType アイテムについて

nsCertType = sslCA, emailCA

とします。
これらは実際にはコメントアウトしているのを取り消すだけです。

次に鍵や証明書を作成します。

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

を実行して対話型で入力していきますが、
CA certificate filename はなし、Enter PEM pass phrase は適当なパスワード、
A challenge password と An optional company name には何も入力せず、
Enter pass phrase for ./demoCA/private/./cakey.pem には先のパスワードを入力し、
それ以外は適当に設定していきます。
なお、Common Name はサーバのホスト名(FQDN)でいいです。
続いて同じ要領で以下を実行し、生成された証明書等を以下のようにコピーします。

# ./CA.sh -newreq
# ./CA.sh -sign
# mkdir /etc/apache2/ssl
# cp newcert.pem /etc/apache2/ssl/
# cp newkey.pem /etc/apache2/ssl/
# cd /etc/apache2/ssl

また以下を実行してパスフレーズを除去します。
途中でパスフレーズを要求されますが、
先に設定したパスワードを入力すればいいです。

# cp newkey.pem newkey.pem.bak
# openssl rsa -in newkey.pem.bak -out newkey.pem


さて、最後にapacheの設定です。
まず /etc/apache2/httpd.conf にServerNameディレクティブを

ServerName <サーバのFQDN>

で設定し、

# cd /etc/apache2/sites-enabled/
# ln -s ../sites-available/default-ssl 001-default

を実行して、001-default の DocumentRoot ディレクティブを

DocumentRoot /var/www/html

SSLCertificateFile ディレクティブを

SSLCertificateFile /etc/apache2/ssl/newcert.pem

SSLCertificateKeyFile ディレクティブを

SSLCertificateKeyFile /etc/apache2/ssl/newkey.pem

になおして

# a2enmod ssl
# /etc/init.d/apache2 restart

でapacheが再起動すれば完了です。

0 件のコメント:

コメントを投稿