如何升级 OpenSSL 以适应 Apache 2.2.29 - 仍在使用旧的 0.9.8 版本

如何升级 OpenSSL 以适应 Apache 2.2.29 - 仍在使用旧的 0.9.8 版本

我正在运行 10.04LTE 服务器,我确实想升级 apache 的 openssl。

因此我下载了 openssl 1.0.2c 和 apache 2.2.29 并对其进行了编译。服务器正在启动,但使用的是旧的 ssl 版本:

curl --head http://localhost
HTTP/1.1 200 OK
Date: Mon, 22 Jun 2015 06:00:06 GMT
Server: Apache/2.2.29 (Unix) mod_ssl/2.2.14 OpenSSL/0.9.8k
Last-Modified: Sun, 18 Mar 2012 19:56:07 GMT

但是,Openssl 安装的是新版本:

/usr/local/ssl/bin/openssl version
OpenSSL 1.0.2c 12 Jun 2015

原始版本保持不变:

openssl version
OpenSSL 0.9.8k 25 Mar 2009

我使用以下命令编译了 Apache:

./configure --with-included-apr --prefix=/usr/local/apache2 --enable-so     
--enable-rewrite --with-ssl=/usr/local/ssl --enable-ssl=shared
--enable-deflate --enable-expires --enable-headers 

在我添加以下内容之前,Apache 没有启动:

LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so

根据 mod ssl 网站,这仅适用于 apache 1.x

不确定这里出了什么问题。感谢您的帮助!

答案1

问题是您的 Apache 安装无法链接新 OpenSSL 安装的共享库。运行该命令 ldd /usr/local/apache/modules/mod_ssl.so(使用 mod_ssl.so 的适当路径)。您将看到 mod_ssl.so 没有链接到/usr/local/ssl/lib

您可以通过以下几种方式解决此问题:

选项 #1——库中的链接:

打开/etc/ld.so.conf.d/local.conf进行编辑并添加以下行:/usr/local/openssl/lib

重新编译 Apache(记住make clean),它就应该可以工作了。

如果这不起作用。您也可以尝试LDFLAGS直接使用configure命令指定:

LDFLAGS=-L/usr/local/ssl/lib \ ./configure --with-included-apr --prefix=/usr/local/apache2 --enable-so     
--enable-rewrite --with-ssl=/usr/local/ssl --enable-ssl=shared
--enable-deflate --enable-expires --enable-headers

选项#2 - 升级系统 OpenSSL:

使用配置行重新安装 OpenSSL./config --prefix=/usr --openssldir=/usr/local/openssl shared

当您的配置行中未指定前缀时,OpenSSL 安装程序将默认为/usr/local/ssl

快速安装说明:

cd /usr/local/src
wget https://www.openssl.org/source/openssl-1.0.2-latest.tar.gz
tar -zxf openssl-1.0.2*
cd openssl-1.0.2*
./config --prefix=/usr --openssldir=/usr/local/openssl shared
make
make test
make install

答案2

从此站点下载 1.0.2k zip 文件。 https://indy.fulgan.com/SSL/ 解压文件。停止 Apache 服务。在 C:\xampp\apache\bin 中备份这 3 个文件 ssleay32.dll libeay32.dll openssl.exe 将相同的 3 个文件从解压文件位置复制到 C:\xampp\apache\bin 启动 Apache 服务。

相关内容