Apache-SSLのインストール
バージョン | Apache-SSL 1.3.2 | |
OS | Slackware 3.6 (Linux 2.0.35) RedHat 5.2J (Linux 2.0.36) |
|
ホームページ | http://www.apache-ssl.org/ (Apache-SSL公式ページ) http://www.openssl.org/ (OpenSSL公式ページ) |
|
ダウンロード | ftp://ftp.infoscience.co.jp/pub/Crypto/SSL/Apache-SSL/
(Apache-SSL) ftp://ftp.openssl.org/source/ (OpenSSL) |
|
備考 | Apache 1.3.6 OpenSSL 0.9.2b |
ApacheのフリーのSSLパッチです。SSLeayがベースになりますので、まずそれからインストールする必要があります。ところが最新のSSLeay 0.9.0b + Apache-SSL 1.3.2でApacheをコンパイルしたところ、途中で#error "Don't use OpenSSL versions less than 0.9.2b, they have a serious security problem!"という警告とともにコンパイルが中断されてしまいました。そこで今回はSSLeayではなく、OpenSSLを使用しました。OpenSSLは、SSLeayから派生したフリーのSSL実装です。使い方はSSLeayと、ほぼ同じようです。
ApacheのSSLについては、Apache-SSLのほかに、mod_sslという選択肢もあります。mod_sslについては、こちらに書きましたので参照してください。
- 2001/11/24
- サイト証明書の作成手順を別ページに移しました。
- 1999/10/26
- 1.サイト証明書の作成手順を修正しました。 2.APACIでのインストール手順に変更しました。
OpenSSLのインストール
INSTALLの手順通りコンパイルします。
$ tar xvfz openssl-0.9.2b.tar.gz $ cd openssl-0.9.2b $ ./config $ make $ make rehash $ make test
rootになってインストールします。
$ su # make install
SSLeayのインストール
適当なディレクトリでアーカイブを展開して、SSLeay-0.9.0bへ移動します。
$ tar xvfz SSLeay-0.9.0b.tar.gz $ cd SSLeay-0.9.0b
まずデフォルトでは/usr/local/bin/perlを使うようになっていますが、今回のシステムでは/usr/bin/perlなので、これを変更するため、以下のようにします。
$ perl util/perlpath.pl /usr/bin
ソースツリーのシンボリックリンクを張るため、以下のようにします。
$ make -f Makefile.ssl links
Configureを実行します。システムタイプにはlinux-elfを指定します。
$ ./Configure linux-elf
makedependコマンドがインストールされている場合は、make dependを実行します。続いてコンパイル、テストを実行します。make rehashでエラーが出たけど、多分問題ないでしょう。
$ make clean $ make depend $ make $ make rehash $ make test
suでroot権限になってからインストールを行います。
$ su # make install
Apache-SSLのインストール
Apacheのアーカイブを展開し、展開先ツリー上にApache-SSLのアーカイブを展開します。
$ tar xvfz apache_1.3.6.tar.gz $ cd apache_1.3.6 $ tar xvfz ../apache_1.3.6+ssl_1.32.tar.gz
ApacheにSSLパッチをあてます。
$ patch -p1 < SSLpatch
src/Configuration.tmplの以下の部分をOpenSSLのパスに合わせて編集します。
# # SSL Related stuff. N.B. This is set up to use the SSLeay source, NOT an # installed version. # SSL_BASE=/usr/local/ssl SSL_INCLUDE= -I$(SSL_BASE)/include SSL_CFLAGS= -DAPACHE_SSL SSL_LIB_DIR= $(SSL_BASE)/lib SSL_LIBS= -L$(SSL_LIB_DIR) -lssl -lcrypto SSL_APP_DIR= $(SSL_BASE)/bin SSL_APP=$(SSL_APP_DIR=)/openssl
あとは通常のApacheのAPACI手順に従い、configureしてmakeします。(注:REDME.SSLには、APACIを使わないインストール手順が書かれています)
$ ./configure $ make
rootになってインストールします。
$ su # make install
gcacheはmake installでインストールされないので、手動でコピーします。
% cp src/modules/ssl/gcache /usr/local/apache/bin/
(1999/9/30:apache_1.3.9+ssl_1.37では自動的にコピーされるようになっていました)
鍵の作成とサイト証明書の発行
サイト証明書を作ります。以下のページを参照してください。
Apacheの設定
以下の設定(httpsd.conf)は、ポートによってSSLの使用/未使用を切り換える設定です。ブラウザのでhttps:ではじまるURLを指定すると自動的にSSLが使われます。この設定は元のhttpd.confの設定とマージして使用します。
Port 443 Listen 443 Listen 80 ServerType standalone SSLCacheServerPort logs/gcache_port SSLCacheServerPath bin/gcache SSLSessionCacheTimeout 300 SSLCertificateKeyFile /usr/local/ssl/private/key.pem SSLCertificateFile /usr/local/ssl/certs/cert.pem SSLVerifyClient 0 SSLVerifyDepth 10 SSLFakeBasicAuth <VirtualHost _default_:80> Port 80 SSLDisable </VirtualHost> <VirtualHost _default_:443> Port 443 SSLCertificateKeyFile /usr/local/ssl/private/key.pem SSLCertificateFile /usr/local/ssl/certs/cert.pem SSLVerifyClient 0 SSLVerifyDepth 10 SSLFakeBasicAuth DocumentRoot /usr/local/apache/htdocs </VirtualHost>
以下のようにように設定ファイルを指定してApacheを起動します。
# /usr/local/apache/bin/httpsd -f /usr/local/apache/etc/httpsd.conf
自動起動の設定
OSブート時に自動的に起動するように設定します。この設定方法はOSによって異なります。ここではSlackware Linuxでの例です。
/etc/rc.d/rc.localに以下を追加します。
# Start Apache-SSL /usr/local/apache/bin/httpsd -f /usr/local/apache/etc/httpsd.conf
自動起動の設定(RedHat)
RedHat系の場合は、Slackwareと同じやり方でもいいのですが、以下のようにするのが標準です。
起動用スクリプトはhttpsdctrlが使用できるはずなのですが、なぜかhttpdを見に行こうとしてうまく動かないので、自分で作ります。
起動用スクリプト/etc/rc.d/init.d/apacheを作成します。パーミッションを755に設定します。内容は以下の通りです。
#!/bin/sh . /etc/rc.d/init.d/functions [ -f /usr/local/apache/bin/httpsd ] || exit 0 case "$1" in start) echo -n "Starting Apache-SSL server: " /usr/local/apache/bin/httpsd echo ;; stop) echo -n "Stopping Apache-SSL server: " killproc httpsd echo ;; status) status httpsd ;; *) echo "Usage: $0 {start|stop|status}" exit 1 esac
このスクリプトを自動起動するように各ランレベル用のディレクトリにシンボリックリンクを設定します。
# cd /etc/rc.d/rc0.d # ln -s ../init.d/apache K110apache # cd /etc/rc.d/rc1.d # ln -s ../init.d/apache K110apache # cd /etc/rc.d/rc2.d # ln -s ../init.d/apache S110apache # cd /etc/rc.d/rc3.d # ln -s ../init.d/apache S110apache # cd /etc/rc.d/rc4.d # ln -s ../init.d/apache S110apache # cd /etc/rc.d/rc5.d # ln -s ../init.d/apache S110apache # cd /etc/rc.d/rc6.d # ln -s ../init.d/apache K110apache