Webサーバは、世界で最も使われているApacheを使います。
ApacheをSSL対応のWebサーバにするため、mod_sslという組み込みモジュールを使います。
以下に、Apache+mod_sslの設定方法についてまとめてあります。
以下のソフトをダウンロードし、/usr/local/pubに格納します。
mod_sslは、Apacheのソースに対して、パッチをかけるので、バージョンに注意が必要です。
http://httpd.apache.org/dist/ apache_1.3.19.tar.gz 2001/02/28 1.8MB
http://www.modssl.org/source/ mod_ssl-2.8.1-1.3.19.tar.gz 2001/03/03 800KB
http://www.openssl.org/source/ openssl-0.9.6.tar.gz 2000/09/24 2MB
mod_sslを使うためには、SSLライブラリとして、OpenSSLが必要です。
unix# cd /usr/local/src unix# gzip -cd ../pub/openssl-0.9.6.tar.gz | tar -xvf - unix# cd openssl-0.9.6 unix# ./config unix# make unix# make install |
Apacheをメイクするための準備をします。 実際にメイクするのは、mod_sslをインストールして、ソースにパッチを当てた後です。
unix# cd /usr/local/src unix# gzip -cd ../pub/apache_1.3.19.tar.gz | tar -xvf - unix# cd apache_1.3.19 unix# setenv OPTIM -O2 unix# ./configure --prefix=/usr/local/apache --enable-module=so (make; make installは、しない) |
次にmod_sslをメイクするための準備をします。
unix# cd /usr/local/src unix# gzip -cd ../pub/mod_ssl-2.8.1-1.3.19.tar.gz | tar -xvf - unix# cd mod_ssl-2.8.1-1.3.19 unix# ./configure --prefix=/usr/local/apache --with-apache=../apache_1.3.19 \ --enable-shared=ssl --with-ssl=/usr/local/ssl (make; make installは、しない) |
Apache+mod_sslのメイクの後、証明書を作成してから、インストールします。
unix# cd /usr/local/src unix# cd apache_1.3.19 unix# make unix# make certificate Signature Algorithm ((R)SA or (D)SA) [R]: 1. Country Name (2 letter code) [XY]:JP 2. State or Province Name (full name) [Snake Desert]:Ishikawa 3. Locality Name (eg, city) [Snake Town]:Kanazawa 4. Organization Name (eg, company) [Snake Oil, Ltd]:ASH 5. Organizational Unit Name (eg, section) [Webserver Team]:ash 6. Common Name (eg, FQDN) [www.snakeoil.dom]:www.ash.jp 7. Email Address (eg, name@FQDN) [www@snakeoil.dom]:root@ash.jp 8. Certificate Validity (days) [365]: Certificate Version (1 or 3) [3]: Encrypt the private key now? [Y/n]: Enter PEM pass phrase:freebsd Verifying password - Enter PEM pass phrase:freebsd unix# make install |
unix# cd /usr/local/apache/conf/ unix# vi httpd.conf ・サーバ名の設定 ServerName www.ash.jp ・1つのログに詳細情報を出力するための設定 #CustomLog /usr/local/apache/logs/access_log common CustomLog /usr/local/apache/logs/access_log combined ・ディレクトリのデフォルトインデックスファイルの設定 DirectoryIndex index.html index.htm index.cgi ・CGIの設定 <Directory "/usr/local/apache/cgi-bin"> Options None FollowSymLinks ExecCGI </Directory> AddHandler cgi-script .cgi ・プロキシの自動設定のための設定 AddType application/x-ns-proxy-autoconfig .pac |
Webサーバを自動起動に設定します。
FreeBSDでは、起動時に、/usr/local/etc/rc.dディレクトリ配下のシェルを実行するため、httpd.shを作成します。
このシェルを起動すると、httpサーバとhttpsサーバが、バーチャルホストにより動作するようになります。
unix# cd /usr/local/etc/rc.d unix# vi httpd.sh #!/bin/sh case "$1" in start) apachectl sslstart ;; stop) apachectl stop ;; *) echo "Usage: `basename $0` {start|stop}" >&2 ;; esac exit 0 unix# chmod +x httpd.sh |
自動起動する場合は、パスフレーズをはずす必要があります。
unix# cd /usr/local/apache/conf/ssl.key unix# cp -p server.key server.key.org unix# openssl rsa -in server.key.org -out server.key |