Я использую сервер 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
Apache не запускался, пока я не включил:
LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so
Согласно сайту 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