(http://www.infoscience.co.jp/technical/openssl/index.htmlよりopenssl-0.9.4.tar.gzを入手)
tar xvzf openssl-0.9.4.tar.gz
cd openssl-0.9.4
./config
make
make test
su
make install
exit
使用するapacheに対応したSSLパッチをhttp://japache.infoscience.co.jp/Apache-SSL/より入手しておく。
tar xvzf apache_1.3.9.tar.gz
cd apache_1.3.9
./configure
apacheソースツリーのトップディレクトリでSSLパッチを当てる。
tar xvzf apache_1.3.9+ssl_1.37.tar.gz
patch < SSLpatch
OpenSSLの環境に合わせてsrc/Configuration.tmplを編集する。
SSL_BASE=/usr/local/ssl
SSL_INCLUDE=-I/usr/local/ssl/include/openssl
SSL_LIB_DIR=/usr/local/ssl/lib
SSL_APP_DIR=/usr/local/src/openssl-0.9.4/apps
SSL_APP=/usr/local/ssl/bin/openssl
./configure
make
(srcディレクトリに実行ファイルhttpsdができる。)
ユーザー名www、グループ名wwwでapache実行ユーザーを作成する。
su
adduser
(省略)
インストールディレクトリを作成し必要なファイルをコピーする。
設定ファイルは/usr/local/etc/httpsdへ、 実行ファイルは/usr/local/libexecへ、 ドキュメントファイルは/home/httpsd/htdocsへ、 ログファイルは/var/log/httpsdへ、 プロセスIDファイルは/var/runへ置いた。
cp src/httpsd /usr/local/libexec/
mkdir /usr/local/etc/httpsd
chown -R www.www /usr/local/etc/httpsd
mkdir /home/httpsd
chown -R www.www /home/httpsd
mkdir /var/log/httpsd
su www
cp conf/httpd.conf-dist /usr/local/etc/httpsd/httpsd.conf
cp conf/mime.types conf/magic /usr/local/etc/httpsd/
cp -R cgi-bin htdocs icons src /home/httpsd
SSLのプライベート証明書の作成
cd /usr/local/etc/httpsd
/usr/local/ssl/bin/openssl req -new -x509 -nodes -out httpsd.pem -keyout httpsd.pem -days 365 (1行で)
いくつか尋ねてくるので答える。
CountryName :JP
State or Province Name :Kanagawa
Locality Name :Ebina-shi
Organization Name :会社名
Organizational Unit Name :組織名
Common Name :ホストのFQDN
Email Address :メールアドレス
(このディレクトリにSSLのプライベート証明書httpsd.pemができる。)
httpsd.confを編集する。
実行ユーザー/グループをwww/www
ServerRootを/usr/local/etc/httpsd
ログ関連ディレクトリを/var/log/httpsd
プロセスID PIDファイルを/var/run/httpsd.pid
ドキュメントルートを/home/httpsd/htdocs
その他CGIディレクトリ、iconディレクトリも環境に合わせて編集する。
さらにhttpsd.confにApche-SSL独自の設定を追加する。
(/usr/local/src/apache_1.3.9/SSLconf/conf/httpd.confを参照。必要に追加変更してください。)
Portを80から443に変更
Listen 443
SSLEnable
SSLCertificateFile /usr/local/etc/httpsd/httpsd.pem
SSLVerifyClient 0
SSLVerifyDepth 10
SSLFakeBasicAuth
SSLCacheServerPath /home/httpsd/src/modules/ssl/gcache
SSLCacheServerPort /var/log/httpsd/gcache-port
SSLCacheServerRunDir /tmp
SSLSessionCacheTimeout 15
exit
/usr/local/libexec/httpsd -f /usr/local/etc/httpsd/httpsd.conf &
apache_1.3.9+ssl_1.37では確認していませんが、apache_1.2.6+sslではアクセス制限にapacheの認証モジュールを使用した時パスワードを正しく認識せずアクセスが拒否されてしまいました。(httpsd.confの記述間違いがあればどなたか教えてください。)
PostgreSQLの認証モジュールは正しく動作しました。