我可以在不重新编译服务器的情况下升级 apache 使用的 OpenSSL 版本,而只是使用 mod_ssl 吗?

use*_*105 5 mod-ssl openssl apache-2.2

我在 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
Run Code Online (Sandbox Code Playgroud)

我可以在不重新编译整个服务器的情况下做到这一点吗?我必须重新编译mod_ssl只因为它里面装httpd.confLoadModule

LoadModule ssl_module modules/mod_ssl.so
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

小智 5

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)
Run Code Online (Sandbox Code Playgroud)

只要升级 OpenSSL 不更改库的路径,您所需要做的就是升级 OpenSSL,然后重新启动 Apache,以便加载新的 OpenSSL 库。我相信 OpenSSL 上次更改库路径是在 1.0.0 中,所以如果您从 1.0.0 或更高版本更新,应该没问题。如果您从旧版本(例如 0.9.8)升级,则需要在重建 OpenSSL 后重建 mod_ssl。