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

use*_*698 1 freebsd openssl apache-2.4

我创建一个测试服务器脆弱的心脏出血漏洞错误。

我的服务器在 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”检查站点时显示。

然后我尝试重新安装/重新配置 apache,但同样的测试产生了“OpenSSL 0.9.8”。

所以,我尝试像这样替换默认的 OpenSSL:
- 通过端口安装一个更新的 OpenSSL(试图替换默认版本)
- 卸载端口安装的 OpenSSL(试图完全擦除默认的 OpenSSL)
- 我的源安装只剩下一个了,我想这必须改变它
- 测试仍然产生“OpenSSL 0.9.8”(悲伤)

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

我还想更改网站以使用 OpenSSL 1.0.1,因此有关这方面的建议会有所帮助。

Ouk*_*uki 5

缺少的步骤是您必须告诉系统您要从基础系统的端口使用OpenSSL

  • 从端口构建OpenSSL

  • 创建/添加到您/etc/make.conf的以下行:

    WITH_OPENSSL_PORT=yes
    
    Run Code Online (Sandbox Code Playgroud)
  • 然后重新安装所有其他需要OpenSSL 的模块( devel/apr1, www/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)
    
    Run Code Online (Sandbox Code Playgroud)

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