2011年3月14日月曜日

Ubuntu の Apache2 で SSL を有効にする

Apache2 で SSL を有効にする

Ubuntu Maverick Meerkat 10.10 Server Edition
VMWareとかVirtualBoxとかにUbuntuServerをインストールしてある
OpenSSH を導入しリモートログイン出来るようになっている
Apache2, MySQL, PHP5 がインストールしてある
ターミナルエミュレーターから接続して操作する
mod-rewrite導入済み
awstats導入済み



(01) 秘密鍵の作成


秘密鍵を保管する場所を作る
$ cd ~/
$ mkdir ssl.crt
$ cd ssl.crt

RSA秘密鍵の作成
$ openssl genrsa -des3 -out server-sec.key 4096
パスワードの入力
server-sec.keyが出来る

証明書の署名要求(CSR)の作成
$ openssl req -new -key server-sec.key -out server.csr
幾つか質問されるが、全てエンターキーを押して乗り切る
server.csr が出来る

X.509形式の証明書発行要求の作成
認証書は、server.crtという名前でssl.crt
$ openssl x509 -req -days 365 -in server.csr -signkey server-sec.key -out server.crt
server.crtが出来る

RSA秘密鍵のパスフレーズ削除。Apache用にパスフレーズを入力しなくても秘密鍵を使用できるようにする。
$ openssl rsa -in server-sec.key -out server.key
server.key が出来る

~/ssl.crtに以下の4つのファイルが作成された
server-sec.key (server key)
server.csr (certificate signing request)
server.crt (certificate)
server.key (passwordless key for Apache)


(02) Apache2にSSL設定をする


Apache2の設定ファイルをバックアップ
$ sudo cp /etc/apache2/sites-available/default-ssl /etc/apache2/sites-available/default-ssl.backup

Apache2の設定ファイルを変更
$ sudo nano /etc/apache2/sites-available/default-ssl

以下の部分を
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

作成したファイルを使用するように、以下のように書き換える 
SSLCertificateFile /etc/apache2/ssl/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/server.key


(03) Apache2のSSL設定を有効にする


作成したファイルを配置する
$ sudo mkdir /etc/apache2/ssl
$ sudo cp server.key /etc/apache2/ssl
$ sudo cp server.crt /etc/apache2/ssl

Apache2 の ssl モジュールをを有効にする
$ sudo a2enmod ssl

Apache2 の default-ssl 設定を有効にする
$ sudo a2ensite default-ssl

Apache2 の 再起動
$ sudo service apache2 restart


参考

How to setup Secure Webserver HTTPS (SSL) on Apache in Ubuntu : mypapit gnu/linux blog
http://blog.mypapit.net/2010/09/how-to-setup-secured-http-ssl-with-apache-in-ubuntu.html

openssl コマンド
http://www.nina.jp/server/slackware/openssl/openssl-command.html

OpenSSLコマンドとその用例
http://linux.kororo.jp/cont/server/openssl_command.php

0 コメント: