我可以升级Apache使用的OpenSSL版本,而不用重新编译服务器,但只是mod_ssl?

我在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 

我可以做到这一点,而不重新编译整个服务器? 我是否必须重新编译mod_ssl因为它是使用LoadModulehttpd.conf加载的:

 LoadModule ssl_module modules/mod_ssl.so 

我怎样才能做到这一点?

mod_ssl.so库是dynamic链接到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并不会改变库的path,只需升级OpenSSL,然后重新启动Apache,以便加载新的OpenSSL库。 最后一次OpenSSL改变了库的path是在1.0.0,我相信,所以如果你从1.0.0或更高版本更新,应该没问题。 如果你从旧版本升级(例如0.9.8),你将需要在重buildOpenSSL之后重buildmod_ssl。

我强烈build议升级你的发行版,Apache 2.2和OpenSSL 0.9都非常非常非常老,几乎不再支持。

如果这不是一个选项,你将需要为你安装的OpenSSL版本安装dev头文件,并对它们重新编译mod_ssl 。 也就是说,如果你使用的是Gentoo或者其他的“自己动手”的发行版。

否则,只需要升级和升级。 你的情况已经过期了。