12.5.2. Подключение SSL к Apache

We use cookies. Read the Privacy and Cookie Policy

12.5.2. Подключение 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.у.z-2.0.0.tar.gz

и выполните команду:

./configure –with-apache=../apache_1 .3.14 –with-ssl=../openssi-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

Примечание. Порт 443 — это стандартный порт для протокола HTTPS. Именно по этому порту Apache будет прослушивать виртуальные хосты. 

Теперь непосредственно приступите к созданию виртуального сервера, работающего по протоколу https, для чего продолжите редактирование файла /etc/httpd/conf/httpd.conf. Пример того, что необходимо при этом ввести, приведен в листинге 12.12:

Листинг 12.12. Виртуальный https-cepвep

<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, a startssl на просто start. Затем, находясь в каталоге .usr/local/bin, установите ссылку openssl:

ln –s /usr/local/ssl/bin/openssl openssl

Данный текст является ознакомительным фрагментом.