为什么我的服务器在安装openssl1.0.1时显示openssl 0.9.8?

我正在创build一个testing服务器,这个服务器容易受到心跳的影响。

我的服务器在FreeBSD VM上运行Apache 2.4。 默认情况下,FreeBSD似乎默认安装了OpenSSL 0.9.8。 我试图从端口卸载OpenSSL,但由于我没有通过端口安装(默认情况下来),我无法卸载它的方式。

然后我试图忽略它,并从源代码安装OpenSSL 1.0.1; 但是当我重新启动Apache服务器,并使用curl --head 127.0.0.1检查站点时,显示“OpenSSL 0.9.8”。

然后我试图重新安装/重新configurationApache,但同样的testing产生“OpenSSL 0.9.8”。

所以,我试图像这样replace默认的OpenSSL:
– 通过端口安装更新的OpenSSL(试图replace默认版本)
– 卸载端口安装的OpenSSL(试图彻底清除默认的OpenSSL)
– 我的源代码安装了唯一一个,我认为这必须改变它
– testing仍然取得了“OpenSSL 0.9.8”(悲伤)

那为什么它仍然显示“OpenSSL 0.9.8”?

我也想改变网站使用OpenSSL 1.0.1,所以对此的build议将是有帮助的。

缺less的一步是,你必须对系统说你想从基本系统的端口使用OpenSSL

  • 从端口构buildOpenSSL

  • 创build/添加到/etc/make.conf下面一行:

     WITH_OPENSSL_PORT=yes 
  • 然后重新安装所有需要OpenSSL的其他模块( devel/apr1www/apache24 ,…)

  • 你可以检查apache24使用的OpenSSL库(实际上是apache24 mod_ssl模块):

     # ldd /usr/local/libexec/apache24/mod_ssl.so |grep ssl /usr/local/libexec/apache24/mod_ssl.so: libssl.so.8 => /usr/local/lib/libssl.so.8 (0x801634000) 

    apache24 mod_ssl现在使用来自端口的OpenSSL库。

编译OpenSSL不会帮你太多。 您的Apache仍然与旧的OpenSSL链接。 您可以使用ldd命令来validation。

您应该重新编译Apache或mod_ssl以将其链接到新的OpenSSL。