.
Теперь нужно установить OpenSSL Возможно у вас в системе уже установлен пакет OpenSLL. Для проверки этого введите openssl – если вы увидите в ответ приглашение OpenSSL>, значит OpenSSL уже установлен.
Для установки OpenSSL (если еще не установлен) выполните следующие шаги (перед этим выполните команду su для привилегий суперпользователя):
Распакуйте последнюю версию командой tar zxvf openssl-x.y.z.tar.gz (x.y.z - номер версии).
Перейдите в каталог openssl-x.y.z и выполните команду ./config. Если все нормально (нет ошибок) введите команду make. В противном случае вам, скорее всего, придется установить недостающие пакеты.
Затем нужно ввести команды make install и ldconfig. Перед выполнением команды ldconfig убедитесь, что в файле /etc/ld.so.conf прописан путь к библиотекам OpenSSL (по умолчанию это /usr/local/ssl/lib)
Подключение SSL к Apache
Теперь осталось подключить mod_ssl к Apache. При это следует учитывать, что вам нужна версия mod_ssl, которая совместима с вашей версией Apache. В противном случае mod_ssl будет некорректно работать или вообще откажется работать. Последние цифры в названии модуля указывают на совместимость с определенной версией Apache. Например, для Apache 1.3.14 нужен файл mod_ssl-2.7.1-1.3.14.tar.gz. Здесь 2.7.1 – версия mod_ssl.
Распакуйте модуль tar zxvf mod_ssl-x.y.z-2.0.0.tar.gz и выполните команду
./configure --with-apache=../apache_1.3.14 --with-ssl=../openssl-0.9.5
Я использую OpenSSL 0.9.5
Теперь переходим в каталог с Apache, компилируем его и устанавливаем сертификат
cd ../apache-1.3.14
make
make certificate
make install
Вы установите Apache в каталог, указанный в опции --prefix (по умолчанию /usr/local/apache)
Теперь можно попытаться запустить Apache. Это можно сделать с помощью команды: usr/local/apache/bin/apachectl startssl
Параметр startssl необходим для включения SSL. Apache уже функционирует, однако обратиться по протоколу https вы еще не можете. Для этого вам нужно сконфигурировать виртуальные хосты, которые будут использовать протокол https. О конфигурировании виртуальных хостов более подробно вы можете прочитать в моей статье «Виртуальность»
Для начала нужно указать Apache прослушивать 443-ий порт. Открываем любым редактором файл /etc/httpd/conf/httpd.conf и добавляем эти строки:
Listen 443
NameVirtualHost x.x.x.x:443
Теперь создаем виртуальный сервер, работающий по протоколу https:
<VirtualHost x.x.x.x:443>
# Эти строки нужны для поддержки SSL
SSLEngine on
SSLLogLevel warn
SSLOptions +StdEnvVars
SSLCertificateFile /usr/local/apache/conf/ssl.crt/server.crt
SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/server.key
SSLLog /usr/local/apache/logs/ssl_engine_log
# -------------------------------------
ServerName www.dhsilabs.com
ServerAdmin webmaster@den.dhsilabs.com
DocumentRoot /var/httpd/www/html
ErrorLog /var/https/www/logs/error.log
</VirtualHost>
После этих строк, естественно, вы можете конфигурировать свой виртуальный хост как обычно.
Теперь нужно перезапустить сервер httpd. При запуске Apache потребует ввести пароль... Мы же не хотим его вводить при каждом запуске? Перейдем в каталог, где находится файл ssl.key и выполним команды:
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key
chmod 400 server.key
Почти все готово! Теперь сервер не должен запрашивать пароль и должен работать в нормальном режиме. При обращении https://host.domain броузер должен спросить вас на предмет использования сертификата.
Чтобы Apache по умолчанию стартовал с поддержкой SSL, исправим в файле bin/apachectl условие start на startold, а startssl на просто start
Теперь, находясь в каталоге /usr/local/bin, установим ссылку openssl
ln -s /usr/local/ssl/bin/openssl openssl