2009年4月29日水曜日

そして玄箱へ… LV8

■ Apache HTTP Server
バージョン2.2 を導入する。

# apt-get install apache2


■ SSL
SSL通信で必要な証明書を作成。



・ 証明書作成スクリプトの準備
簡単に作成するためのコマンド(make-ssl-cert)を
使用するため、ssl-cert パッケージをインストールする。

# apt-get install ssl-cert
依存している openssl パッケージが、一緒にインストールされる。

/usr/sbin/make-ssl-cert というコマンドがインストールされるが、
これをそのまま使用すると、証明書の有効期限が30日で作成されるので
365日で作成されるように修正する。

# cp -p /usr/sbin/make-ssl-cert /usr/local/sbin/make-ssl-cert-365days
/usr/local/sbin/make-ssl-cert-365days を修正する。
最後の方にある、以下で始まる2行に -days 365 を追加する

openssl req -config $TMPFILE -new -x509 -nodes ・・・

上のように始まる2行に -days 365を追加

openssl req -config $TMPFILE -new
-days 365 -x509 -nodes ・・・


・ 証明書の作成
作成場所を準備
# mkdir /etc/apache2/ssl
作成実行
# make-ssl-cert-365days /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache2.pem
ここで、トラブル発生、make-ssl-cert はキャラクタベースの
設定画面が表示されるのだが、色の設定が悪いらしく
見えない・・・
接続に利用している Poderosa で色の設定を適当に変えて
再び make-ssl-cert を再び実行すると、なんとか見えるようになった。
ただ、日本語表示だと多少表示が崩れているが、問題ないレベル

CountryName:JP
stateOrPriovinceName:Tokyo
localityName:Musashino-shi
organisationName:適当に
organisationalUnitName:適当に
commonName:適当に

設定を終えると apache2.pem ファイルが出来る。
このファイルには秘密キーと公開キーが入っている。一瞬「えっ?」と思ったが
どうやら Apache2 が、公開キーだけクライアントに送るとかするらしい・・・

sslの設定ファイルを追加
追加する設定ファイルは、テンプレートを利用する。

/usr/share/doc/apache2.2-common/examples/apache2/extra/httpd-ssl.conf.gz
を /etc/apache2/sites-available にコピーする

# cd /etc/apache2/sites-available/
# gunzip httpd-ssl.conf.gz
# mv httpd-ssl.conf ssl

解凍した httpd-ssl.conf の以下の項目を変更する。
VirtualHostの :443 を消してしまっているが、これでいいのかあやしい・・・
気が向いたらフォローすることにする(ぅおぃ

<VirtualHost _default_>
DocumentRoot "/var/www"
ServerName 適当なサーバー名
ServerAdmin 適当なメールアドレス
SSLCertificateFile /etc/apache2/ssl/apache2.pem
SSLCertificateKeyFile /etc/apache2/ssl/apache2.pem

ssl モジュールの有効化
# a2enmod ssl

ssl 設定を有効化する
# a2ensite ssl

apache2 再起動
# apache2ctl restart