web-dev-qa-db-ja.com

サーバーを再コンパイルせずにmod_sslだけでApacheが使用するOpenSSLバージョンをアップグレードできますか?

UnixマシンにApacheサーバーがあります。

Apache/2.2.29 (Unix) OpenSSL/0.9.8zg

OpenSSLバージョンを1.0.2にアップグレードしたいのですが、これは現在システムにインストールされているバージョンです。

machine:/ user$ openssl version
OpenSSL 1.0.2d 9 Jul 2015

サーバー全体を再コンパイルせずにそれを行うことはできますか? LoadModuleを使用してmod_ssl内にロードされる場合にのみ、httpd.confを再コンパイルする必要がありますか?

LoadModule ssl_module modules/mod_ssl.so

どうやってやるの?

6
user3019105

mod_ssl.soライブラリはOpenSSLに動的にリンクされています:

$ ldd mod_ssl.so | egrep 'lib(ssl|crypto)'
    libssl.so.10 => /usr/lib64/libssl.so.10 (0x00007f23f7209000)
    libcrypto.so.10 => /usr/lib64/libcrypto.so.10 (0x00007f23f6e26000)

OpenSSLをアップグレードしてもライブラリへのパスが変更されない限り、OpenSSLをアップグレードしてからApacheを再起動するだけで、新しいOpenSSLライブラリがロードされます。 OpenSSLが最後にライブラリパスを変更したのは1.0.0だったと思うので、1.0.0以降から更新する場合は問題ないはずです。古いバージョン(0.9.8など)からアップグレードする場合は、OpenSSLを再構築した後にmod_sslを再構築する必要があります。

5
Dan Lowe

ディストリビューションをアップグレードすることを強くお勧めします。Apache2.2とOpenSSL 0.9はどちらも非常に古く、非常に古く、サポートされなくなっています。

これがオプションでない場合は、インストールされているOpenSSLバージョンのdevヘッダーをインストールし、それらに対してmod_sslを再コンパイルする必要があります。つまり、Gentooや他の「自分でやる」といったディストリビューションを使用している場合です。

それ以外の場合は、ただ起動してアップグレードします。あなたの場合、それは非常に遅れています。

1
AnrDaemon