Apache-2.2
如何為 apache 2.2.29 升級 openssl - 仍然使用舊的 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
不知道這裡出了什麼問題。感謝您的任何幫助!
問題是您的 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