Установка mod_ssl добавляет в пример файла настройки Apache (обычно он называется httpd.conf.default) различные строки настройки SSL. Эти новые строки помещаются внутри контейнеров IfDefine, что позволяет включать поддержку SSL из командной строки httpd. Система Red Hat , в которой mod_ssl интегрирован в базовую систему Apache, является хорошим приме ром такого подхода. Вот контейнеры IfDefine для инструкций mod_ssl LoadModule и AddModule (система Red Hat):
<IfDefine HAVE_SSt> LoadModule ssl_module modules/libssl.so </IfDefine> cifDefine HAVE_SSL> AddModule mod_ssl.c </IfDefine>
Инструкции LoadModule и AddModule выполняются только в случае, когда в командной строке httpd определен символ HAVE_SSL. Строка «НА- VESSL» является произвольным выбором - в другой системе может использоваться просто «SSL». Главное, чтобы эта строка совпадала со значением, определенным в командной строке httpd. К примеру:
« httpd -DHAVE_SSL
Назначение команды - запустить сервер SSL Apache в системе Red Hat 7.2. Помимо контейнеров для инструкций LoadModule и AddModule, существует контейнер IfDefine для специальных настроек сервера SSL. Вот такой контейнер из файла настройки Red Hat:
<IfDefine HAVE_SSL> Listen 80 Listen 443 </IfDefine> <IfDefine HAVE_SSL> AddType application/x-x509-ca-cert ,crt AddType application/x-pkcs7-crl .crl </IfDefine> <IfOefine HAVE_SSL> <VirtualHost .default.:443> ErrorLog logs/error_log TransferLog logs/access_log SSLEngine on SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key <Files " "_(cgi|shtml|phtml|php3?)$"> SSLOptions +StdEnvVars </Files> <Directory "/var/www/cgi-bin"> SSLOptions +StdEnvVars </Directory> SetEnvIf User-Agent \»MSIE.«" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog logs/ssl_request_log \ "*t %h %{SSL_PR0T0C0L}x %{SSL_CIPHER}x %r' %b" </VirtualHost> </IfDefine>