我正在运行 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 服务。