Apacheのopensslをアップグレードしたい10.04LTEサーバーを実行しています。
したがって、openssl 1.0.2cとApache 2.2.29をダウンロードして両方をコンパイルしました。サーバーは起動していますが、古いsslバージョンを使用しています:
curl --head http://localhost
HTTP/1.1 200 OK
Date: Mon, 22 Jun 2015 06:00:06 GMT
Server: Apache/2.2.29 (Unix) mod_ssl/2.2.14 OpenSSL/0.9.8k
Last-Modified: Sun, 18 Mar 2012 19:56:07 GMT
ただし、Opensslは新しいバージョンでインストールされます。
/usr/local/ssl/bin/openssl version
OpenSSL 1.0.2c 12 Jun 2015
元のバージョンはそのままですが、
openssl version
OpenSSL 0.9.8k 25 Mar 2009
Apacheを次のようにコンパイルしました。
./configure --with-included-apr --prefix=/usr/local/Apache2 --enable-so
--enable-rewrite --with-ssl=/usr/local/ssl --enable-ssl=shared
--enable-deflate --enable-expires --enable-headers
含める前にApacheが起動しませんでした:
LoadModule ssl_module /usr/lib/Apache2/modules/mod_ssl.so
Mod sslのWebサイトによると、これはApache 1.xでのみ使用できます
ここで何が悪いのかわからない。助けてくれてありがとう!
問題は、Apacheインストールが新しいOpenSSLインストールの共有ライブラリをリンクできないことです。コマンドldd /usr/local/Apache/modules/mod_ssl.so
を実行します(mod_ssl.soへの適切なパスを使用)。 mod_ssl.soが/usr/local/ssl/lib
のライブラリにリンクしていないことがわかります
この問題を解決するには、いくつかの方法があります。
オプション#1-ライブラリ内のリンク:
編集のために/etc/ld.so.conf.d/local.conf
を開き、次の行を追加します:/usr/local/openssl/lib
Apacheを再コンパイルして(make clean
を忘れないでください)、動作するはずです。
それが機能しない場合。 LDFLAGS
コマンドを使用してconfigure
を直接指定することもできます。
LDFLAGS=-L/usr/local/ssl/lib \ ./configure --with-included-apr --prefix=/usr/local/Apache2 --enable-so
--enable-rewrite --with-ssl=/usr/local/ssl --enable-ssl=shared
--enable-deflate --enable-expires --enable-headers
オプション#2-システムOpenSSLをアップグレードします:
設定行./config --prefix=/usr --openssldir=/usr/local/openssl shared
を使用してOpenSSLを再インストールします
プレフィックスが設定行で指定されていない場合、OpenSSLインストーラーはデフォルトで/usr/local/ssl
になります。
クイックインストール手順:
cd /usr/local/src
wget https://www.openssl.org/source/openssl-1.0.2-latest.tar.gz
tar -zxf openssl-1.0.2*
cd openssl-1.0.2*
./config --prefix=/usr --openssldir=/usr/local/openssl shared
make
make test
make install