如何升级的Apache 2.2.29 openssl – 仍然使用旧的0.9.8版本

我正在运行一个10.04LTE服务器,我想升级openssl的Apache。

所以我下载了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 

在我joinApache之前,Apache并没有启动:

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

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

不知道这里发生了什么问题。 感谢您的任何帮助!

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

你有几个选项来解决这个问题:

选项#1 – 库中的链接:

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

重新编译Apache(记得make clean ),它应该工作。

如果这不起作用。 你也可以用你的configure命令直接指定LDFLAGS

 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:

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

如果在configuration行中未指定前缀,则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