トップページ | ダウンロード | 各種情報 | 関連ソフトウェア | SSL対応

Apache-SSL のインストールについてのメモ

Apache-SSL (Apache 1.2.5 Ben-SSL/1.13) でインストールした際のメモです。これより新しい版の Apache-SSL でも参考になると思います。

必要なソフトウェア、関連情報、Apache-SSL 以外の SSL 対応の選択肢については SSL のページ にまとめてあります。Apache 一般については トップページからどうぞ。

インストールするディレクトリについて

以下の説明では、インストール先を次のように表記・仮定します。

オリジナルのアーカイブファイルが置いてあるディレクトリ
$ARCHIVE
アーカイブを展開し、コンパイルを行うディレクトリ
$TOP
SSLeay のインストール先
/usr/local/ssl
Apache-SSL 実行系のインストール先
/usr/local/etc/httpd および
/usr/local/etc/httpd/SSLconf など

インストール手順

SSLeay の作成

1999/11/22 注: SSLeay-0.8.1 で説明していますが、最近は OpenSSL を使うのが一般的です。インストール手順も ./config & make & make test & make install と簡単になってます。付属の INSTALL を参照のこと

  1. まずは、アーカイブを展開

    % cd $TOP
    % gzip -cd $ARCHIVE/SSLeay-0.8.1.tar.gz | tar xf -
    % cd SSLeay-0.8.1
    
  2. ドキュメントを読む。作成手順は INSTALL にあるので、それに従う。以下に、それを簡単に記す。

  3. perl が /usr/local/bin/perl ではなく、例えば、 /new/path/perl であるならば、

    % perl util/perlpath.pl /new/path
    

    を実行。プログラム名を含めず、ディレクトリ名だけを指定することに注意。

  4. このライブラリを install する先を /usr/local/ssl 以外にする場合、例えば、/new/ssl/home にするのであれば、

    % perl util/ssldir.pl /new/ssl/home
    

    を実行する。すると、crypto/cryptlib.htool/c_rehashMakefile.ssl が書き変わる。

  5. source tree の中の、symbolic link を張り直す。

    % make -f Makefile.ssl links
    
  6. Makefile などの機種依存部分に変更を加えるために、

    % ./Configure SYSTEMTYPE
    

    を実行。SYSTEMTYPE の部分は使っているシステムにより異なる。引数を与えずに、./Configure のみを実行すれば、指定できるものの一覧が表示される。たとえば、SunOS4 で、gcc を使うのであれば、

    % ./Configure sunos-gcc
    

    として実行 (chmod +w ./Configure する必要があるかもしれない)。

  7. コンパイル、テスト、install を行う。

    % make clean
    % make depend (makedepend コマンドが install されているなら)
    % make
    % make rehash
    % make test
      (動作テストの結果が出てくる)
    % su (必要に応じて)
    # make install
    

Apache-SSL の作成

オリジナルの Apache アーカイブファイルを展開し、さらに、Apache-SSL 用の patch を展開、patch をあて、作成、install。

  1. 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
    
  2. システムに合わせて、また、必要に応じて 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.tmplcertificate: の部分も変更が必要。具体的には

    $(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 の設定をすべて削ったりした。

  3. ConfigurationMakefile.tmpl の修正を終えたら、

    % ./Configure
    % make
    

    でコンパイルする。

  4. テスト用の 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 中に記述するホスト名をいれるようにすることに注意。

インストール

  1. 実行ファイル、設定ファイルを、実行用のディレクトリにコピーする。たとえば、

    % 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/
    
  2. Apache-SSL 用設定ファイルを編集する。SSLconf/conf 内の httpd.conf は、オリジナルの Apache に付属の httpd.conf とマージする。Apache-SSL に付属の srm.conf や access.conf はダミーなので、Apache に付属のオリジナルのものをコピーするなどして使う。

    そして、httpd.conf 内の SSL 関連ファイルの path を実際の pem ファイルなどを指すように変更する。Port は https://... については 443 がデフォルトなので注意。

  3. 起動する。

    % su
    # /usr/local/etc/httpd/bin/httpsd -f /usr/local/etc/httpd/SSLconf/conf/httpd.conf 
    

トップページ | ダウンロード | 各種情報 | 関連ソフトウェア | SSL対応