Книга: Linux-сервер своими руками

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

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 [email protected]
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

Оглавление книги


Генерация: 1.228. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз