编译 HTTPD 和 OpenSSL 从源代码来看,服务器字符串是错误的?

编译 HTTPD 和 OpenSSL 从源代码来看,服务器字符串是错误的?

系统具有 OpenSSL 版本 1.0.1e,这是 CentOS 7 存储库中可用的版本,但自那时起(2013 年)就出现了许多 CVE

Httpd 是从源代码编译的

./configure --enable-so --enable-ssl --enable-cache-disk --enable-cache-socache --enable-deflate --with-mpm=prefork --enable-fpm --enable-cgi --with-ssl=/usr/local/ssl/include --enable-ssl-static-lib-deps --enable-mods-static=ssl

但即使重新启动后,服务器 SSL 版本仍显示:

curl --head http://localhost

HTTP/1.1 301 Moved Permanently
Date: Fri, 14 Jul 2017 04:46:26 GMT
Server: Apache/2.4.25 (Unix) OpenSSL/1.0.1e-fips PHP/5.6.30 mod_myfixip/1.4
Location: XYZ
Cache-Control: max-age=0
Expires: Fri, 14 Jul 2017 04:46:26 GMT
Content-Type: text/html; charset=iso-8859-1

但仔细检查 httpd 二进制文件后,它看起来正如预期的那样使用 1.0.21 进行编译:

^@ssl_engine_init.c^@AH02209: CA certificate: %s^@init_server^@chil^@TLSv1.2, ^@TLSv1.1, ^@TLSv1, ^@SSLv3, ^@SSLProxy^@with^@without^@AH03039: %i:^@OpenSSL 1.0.2l  25 May 2017^@OpenSSL^@Init: ^@SSL_VERSION_INTERFACE^@SSL_VERSION_LIBRARY^@

答案1

必须将手动编译的 openssl“lib”路径添加到“环境变量“文件或手动将其添加到$LD_LIBRARY_PATH在启动 httpd 之前请先自行检查,以便 httpd 使用它来代替系统版本。

环境变量文件包含在 httpd 的 bin 目录中,并且也被 apachectl 脚本使用。它就是为此目的而制作的。

那是:

export LD_LIBRARY_PATH="/path/to/ssl/lib:$LD_LIBRARY_PATH"

相关内容