3

mo_sslSuseSE11SP3 で openssl 1.0.2 を使用して再コンパイルするように求められました。ただし、私は Suse の初心者ですが、Linux について少し知っています。

  • OS : Suse SE11SP3
  • Openssl : 0.9.8j <-オリジナルの Suse Linux に付属
  • ウェブサーバー: Apache httpd 2.2.9

ここに私が持っている制限があります。会社のセキュリティ ポリシーで許可されていないため、zypperまたはを使用できません。rpmばかげている、これがここでのやり方です。私が持っているもう 1 つの制限は、このシステムが、私が許可していない他の Web サーバーによって使用されていることです。できるだけ現地で作らなければなりません。

私が望んでいるのは、Apacheサーバーを再コンパイルするときに、mod_ssl新しいバージョンのOpensslライブラリにリンクされていることを確認したいということです。

そこで、Openssl 1.0.2h ソース ファイルをダウンロードしました。

./confgiure --prefix=//PREFIX/openssl --opendir=/PREFIX/openssl
make test
make install

正常に、ローカル ディレクトリに openssl をインストールしました。

そして、すでに存在する httpd2.2.9 を再コンパイルしようとしました。だから私はhttpd 2.2.9のソースファイルに行きました

make clean

export LIBS=-ldl
export LD_LIBRARY_PATH="/PREFIX/openssl"
export LIBS="-L/PREFIX/openssl"
export CPPFLAGS="-I/PREFIX/include/openssl" 

./configure --prefix=/PREFIX/apache22  --enable-so --enable-ssl=ssl -with-ssl=/PREFIX/openssl --enable-module=shared CC=/usr/bin/gcc

make install

いくつかのエラーがありましたが、私はそれを理解してコンパイルしました。ただし、の最終結果mod_sslは、新しいバージョン 1.0.2h ではなく、古い Openssl 0.9.8 にリンクされています。

これらの手順で見逃したものは何ですか? または、どこで間違ったのですか?


//openssl install
./config -fPIC shared --prefix=/PREFIX/openssl --openssldir=/PREFIX/openssl
make 
make test
make install

// install apache2 

//recompiling after apache2 is installed with openssl 

export LIBS=-ldl
export LD_LIBRARY_PATH="/PREFIX/openssl/lib"
export LDFLAGS="-L/PREFIX/openssl"
export CPPFLAGS="-I/PREFIX/openssl/include/openssl" 
export CFLAGS="-Wl,-rpath=/PREFIX/openssl:/usr/lib -I/PREFIX/openssl/include/openssl"

./configure --prefix=/PREFIX/apache22  --enable-so --enable-ssl=shared -with-ssl=/PREFIX/openssl --enable-module=shared CC=/usr/bin/gcc
make
make install

上記のコマンドは「apache22/modules」の下にmod_ssl.soを作成しますが、ldd mod_ssl.soを実行すると、次のようになりました

linux-vdso.so.1 =>  (0x00007fffef8f2000)
libssl.so.1.0.0 => not found
libcrypto.so.1.0.0 => not found
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ffe6a48d000)
libc.so.6 => /lib64/libc.so.6 (0x00007ffe6a116000)
/lib64/ld-linux-x86-64.so.2 (0x00007ffe6a913000)

libssl.so、libcrypto.so がリンクされていません。mod_ssl.so を別のバージョンの openssl にリンクするためにここで何ができるかわかりません。

私を助けてください。

4

2 に答える 2

0

これは非常に役に立ちます。Apache を再コンパイルする前に、必ず 'make clean' として Apache をクリーンアップしてください。

make clean、configure、make installとして apache を再コンパイルするプロセス。

于 2019-02-15T11:10:00.377 に答える