ASH | サーバ | セキュリティ | Linux | FreeBSD | DB | Web | CGI | Perl | Java | XML | プログラム | ネットワーク | 標準 | Tips集

セキュアなWWWサーバ(Apache+mod_ssl)の設定方法

 Webサーバは、世界で最も使われているApacheを使います。 ApacheをSSL対応のWebサーバにするため、mod_sslという組み込みモジュールを使います。
 以下に、Apache+mod_sslの設定方法についてまとめてあります。

入手方法

 以下のソフトをダウンロードし、/usr/local/pubに格納します。
 mod_sslは、Apacheのソースに対して、パッチをかけるので、バージョンに注意が必要です。

OpenSSLのインストール

 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のメイク準備

 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のメイク準備

 次に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のメイク

 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

Apacheの設定

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


Copyright (C)1995-2002 ASH multimedia lab.
mail : info@ash.jp