Две строки в первом контейнере IfDefine предписывают серверу принимать соединения через порт 443, а не только через стандартный порт 80. Порт 443 используется в работе протокола SSL. Две строки во втором контейнере IfDefine связывают файловые расширения .crt и .crl с определенными файловыми MIME-типами. Расширения .crt и .crl относятся к сертификатам SSL. К сертификатам мы еще вернемся в этой главе.
Основная часть настроек сервера SSL содержится в контейнере VirtualHost. Данные настройки виртуального узла используются, когда поступает соединение на порт сервера по умолчанию, SSL-порт 443. Специальный файл журнала позволяет отслеживать SSL-запросы. Инструкции ErrorLog, TransferLog и CustomLog мы уже ранее встречали. Большинство прочих инструкций настройки действует только при работающей подсистеме SSL:
SSLEngine - Включает обработку SSL для данного виртуального узла.
SetEnvIf - Выполняет, по существу, ту же функцию, что и инструкции BrowserMatch, описанные ранее. В данном примере инструкция SetEnvIf проверяет, является ли User-Agent (броузер) агентом Microsoft Internet Explorer. В случае положительного ответа параметр ssl-unclean-shutdown уведомляет Apache, что данный броузер не умеет корректно закрывать соединения и что не следует использовать постоянные (keepalive) соединения при работе с броузером Internet Explorer.
SSLOptions - Определяет значения специальных параметров протокола SSL. В данном примере разрешены StdEnvVars для каталога /var/www/cgi-bin, равно как и для всех файлов CGI и SSI. StdEnvVars - это переменные среды, передаваемые по соединению клиенту. Извлечение значений этих переменных требует от сервера затрат времени, поэтому они передаются только в случаях, когда клиент способен воспользоваться значениями - как в случаях сценариев CGI или файлов SSI.
SSLCertificateFile
Указывает на файл, содержащий открытый ключ сервера.
SSLCertificateKeyFile