Apache-SSL (Apache 1.2.5 Ben-SSL/1.13) でインストールした際のメモです。これより新しい版の Apache-SSL でも参考になると思います。
必要なソフトウェア、関連情報、Apache-SSL 以外の SSL 対応の選択肢については SSL のページ にまとめてあります。Apache 一般については トップページからどうぞ。
以下の説明では、インストール先を次のように表記・仮定します。
$ARCHIVE
$TOP
/usr/local/ssl
/usr/local/etc/httpd
および/usr/local/etc/httpd/SSLconf
など
1999/11/22 注: SSLeay-0.8.1 で説明していますが、最近は OpenSSL を使うのが一般的です。インストール手順も ./config & make & make test & make install と簡単になってます。付属の INSTALL を参照のこと
まずは、アーカイブを展開
% cd $TOP % gzip -cd $ARCHIVE/SSLeay-0.8.1.tar.gz | tar xf - % cd SSLeay-0.8.1
ドキュメントを読む。作成手順は INSTALL にあるので、それに従う。以下に、それを簡単に記す。
perl が /usr/local/bin/perl
ではなく、例えば、
/new/path/perl
であるならば、
% perl util/perlpath.pl /new/path
を実行。プログラム名を含めず、ディレクトリ名だけを指定することに注意。
このライブラリを install する先を /usr/local/ssl
以外にする場合、例えば、/new/ssl/home
にするのであれば、
% perl util/ssldir.pl /new/ssl/home
を実行する。すると、crypto/cryptlib.h
、tool/c_rehash
、Makefile.ssl
が書き変わる。
source tree の中の、symbolic link を張り直す。
% make -f Makefile.ssl links
Makefile などの機種依存部分に変更を加えるために、
% ./Configure SYSTEMTYPE
を実行。SYSTEMTYPE
の部分は使っているシステムにより異なる。引数を与えずに、./Configure
のみを実行すれば、指定できるものの一覧が表示される。たとえば、SunOS4 で、gcc を使うのであれば、
% ./Configure sunos-gcc
として実行 (chmod +w ./Configure
する必要があるかもしれない)。
コンパイル、テスト、install を行う。
% make clean % make depend (makedepend コマンドが install されているなら) % make % make rehash % make test (動作テストの結果が出てくる) % su (必要に応じて) # make install
オリジナルの Apache アーカイブファイルを展開し、さらに、Apache-SSL 用の patch を展開、patch をあて、作成、install。
2 つのアーカイブを順に展開し、SSL 用 patch をあてる。
% cd $TOP % gzip -cd $ARCHIVE/apache_1.2.5.tar.gz | tar xf - % cd apache_1.2.5 % gzip -cd $ARCHIVE/apache_1.2.5+ssl_1.13.tar.gz | tar xf - % patch -p1 < SSLpatch
システムに合わせて、また、必要に応じて src/Configuration
に手を入れる。そして、Configure を実行し、make。
% cd src % vi Configuration (詳細は後) % ./Configure % make
Configuration
の変更は、基本的には通常の Apache の install 手順に同じで、必要なモジュールの部分をコメントアウトしたり、ライブラリや include path などの設定をするといったことを行う。
Apache-SSL ではそれらに加え、SSL関連のいくつかの項目を設定必要がある。配布されているものは SSLeay のソースコードが展開され、make されたものを指すようになっている。これを、install された SSLeay を使うようにするには、たとえば、
# Enable SSL. NB: There is one line at the end of this file, too... SSL_BASE=/usr/local/ssl SSL_INCLUDE= -I$(SSL_BASE)/include SSL_CFLAGS= -DAPACHE_SSL $(SSL_INCLUDE) SSL_LIB_DIR= $(SSL_BASE)/lib SSL_LIBS= -L$(SSL_LIB_DIR) -lssl -lcrypto TARGET=httpsd
のようにする。SSL_BASE
およびSSL_LIB_DIR
の部分を変更している。
あとで make certificate で動作テストするのであれば、Makefile.tmpl
の certificate:
の部分も変更が必要。具体的には
$(SSL_LIB_DIR)/apps/ssleay → $(SSL_BASE)/bin/ssleay $(SSL_LIB_DIR)/apps/ssleay.conf → $(SSL_LIB_DIR)/ssleay.cnf
のようにする (最近の SSLeay では デフォルトの 設定ファイルの拡張子が .conf から .cnf になっていることにも注意)。また、ln
のオプションが -sf
となっているが、システムによっては -f
がないので、-s
のみに変更するなどといったことなども必要。
私の場合は、EXTRA_CFLAGS
の設定をすべて削ったりした。
Configuration
や Makefile.tmpl
の修正を終えたら、
% ./Configure % make
でコンパイルする。
テスト用の CA を作成するのであれば、
を実行する。途中、いくつかの質問に答える必要があるので、それに答える。たとえば、% make certificate
Country Name (2 letter code) [AU]:JP State or Province Name (full name) [Queensland]:Tokyo Locality Name (eg, city) []:Chuo-ku Organization Name (eg, company) [Mincom Pty Ltd]:FooBar Inc. Organizational Unit Name (eg, section) [MTR]: System Common Name (eg, YOUR name) []:www.foobar.co.jp Email Address []:webmaster@foobar.co.jp
Cmomon Name
の問いに対しては、URL 中に記述するホスト名をいれるようにすることに注意。
実行ファイル、設定ファイルを、実行用のディレクトリにコピーする。たとえば、
% su # mkdir /usr/local/etc/httpd # cd $TOP/apache_1.2.5 # tar cf - . | (cd /usr/local/etc/httpd ; tar xvpf - ) # cd /usr/local/etc/httpd # mkdir /usr/local/etc/httpd/bin # mv src/httpsd bin/
Apache-SSL 用設定ファイルを編集する。SSLconf/conf 内の httpd.conf は、オリジナルの Apache に付属の httpd.conf とマージする。Apache-SSL に付属の srm.conf や access.conf はダミーなので、Apache に付属のオリジナルのものをコピーするなどして使う。
そして、httpd.conf 内の SSL 関連ファイルの path を実際の pem ファイルなどを指すように変更する。Port は https://...
については 443 がデフォルトなので注意。
起動する。
% su # /usr/local/etc/httpd/bin/httpsd -f /usr/local/etc/httpd/SSLconf/conf/httpd.conf