web-dev-qa-db-ja.com

Apache 2.2.29のopensslをアップグレードする方法-まだ古い0.9.8バージョンを使用しています

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でのみ使用できます

ここで何が悪いのかわからない。助けてくれてありがとう!

2
merlin

問題は、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
2
Elliot B.