中年engineerの独り言 - crumbjp

LinuxとApacheの憂鬱

サービスに使えるapache/opensslの構築方法

今回は私自身が最近行った環境構築の手順を紹介します。

手順は以下の通りです。

  1. openssl ビルド/インストール
  2. apache2 ビルド/インストール
  3. apache2 設定変更 (opensslのパス)

opensslの.md5がmd5sumコマンドの形式では無いので面倒です・・・

openssl

 $ cd /tmp
 $ wget http://openssl.org/source/openssl-0.9.8i.tar.gz
 $ wget http://www.openssl.org/source/openssl-0.9.8i.tar.gz.md5
 $ md5sum openssl-0.9.8i.tar.gz | awk '{print $1}' | diff openssl-0.9.8i.tar.gz.md5 -
 $ tar xzvf openssl-0.9.8i.tar.gz
 $ cd openssl-0.9.8i
 $ ./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl \
   threads shared zlib-dynamic
 $ make
 $ make test
 $ sudo make install

/usr/local/openssl 以下にインストール
正直opensslに詳しい訳ではありませんがこれで困った事は無いです。

apache2

 $ cd /tmp
 $ wget http://ftp.kddilabs.jp/infosystems/apache/httpd/httpd-2.0.63.tar.gz
 $ wget http://www.apache.org/dist/httpd/httpd-2.0.63.tar.gz.md5
 $ md5sum --check httpd-2.0.63.tar.gz.md5
 $ tar xzvf httpd-2.0.63.tar.gz
 $ cd httpd-2.0.63
 $ ./configure --prefix=/usr/local/apache2 --with-mpm=worker --enable-modules=most \
 --with-ssl=/usr/local/openssl --enable-ssl=shared \
 --enable-cache=shared --enable-disk-cache=shared --enable-mem-cache=shared \
 --enable-proxy=shared \
 --enable-proxy-connect=shared --enable-proxy-ftp=shared --enable-proxy-http=shared
 $ make
 $ sudo make install

ほぼ前回と同じですが--with-sslオプションでopensslのパスを指定しています。
ただし--enable-ssl=sharedとしているのでビルド時のパスです。
実行時のパスではありません。

/usr/local/apache2/bin/envvars を編集

アパッチにopensslのライブラリの場所を教えてあげなければならないので
赤の部分を追記します。
LD_LIBRARY_PATH="/usr/local/apache2/lib:/usr/local/openssl/lib:$LD_LIBRARY_PATH"

OS全体にopensslのパスを適用する方法

アパッチだけならば上記までの手順で終了です。
その他のプログラムもopensslを使いたい場合はこの手順を行っておくと便利です。

 $ sudo ldconfig /usr/local/openssl/lib

コレでopensslが必要な全てのプログラムが/usr/local/opensslを使うようになります。
但し、OSを再起動すると設定が無効になってしまうので永続設定にしたい場合は
以下のファイルを作ってください。

  • /etc/ld.so.conf.d/openssl.conf
/usr/local/openssl/lib

コレでOS起動時に自動的に適用されます。