| Директива SSLPassPhraseDialog
Описание: | Тип диалогового окна парольной фразы для зашифрованных закрытых ключей |
Синтаксис: | SSLPassPhraseDialog type |
По умолчанию: | SSLPassPhraseDialog builtin |
Контекст: | конфигурация сервера |
Статус: | Расширение |
Модуль: | mod_ssl |
Когда Apache запускается, он должен прочитать различные файлы сертификатов (см.
SSLCertificateFile ) и закрытых ключей (см. SSLCertificateKeyFile ) виртуальных серверов с поддержкой SSL. Поскольку из соображений безопасности файлы закрытого ключа обычно зашифрованы, mod_ssl необходимо запросить у администратора парольную фразу, чтобы расшифровать эти файлы. Этот запрос можно выполнить двумя способами, которые можно настроить по
типу :
-
builtin
Это значение по умолчанию, при котором интерактивный диалог терминала появляется во время запуска непосредственно перед тем, как Apache отсоединяется от терминала. Здесь администратор должен вручную ввести фразу-пароль для каждого зашифрованного файла закрытого ключа. Поскольку можно настроить множество виртуальных хостов с поддержкой SSL, для минимизации диалога используется следующая схема повторного использования: Когда файл закрытого ключа зашифрован, пробуются все известные фразы-пароли (в начале их, конечно, не было). . Если одна из этих известных фраз-паролей успешна, диалоговое окно для этого конкретного файла закрытого ключа не появляется. Если ни один из них не увенчался успехом, на терминале запрашивается другая парольная фраза, которая запоминается для следующего раунда (где ее, возможно, можно использовать повторно).
Эта схема позволяет mod_ssl быть максимально гибким (поскольку для N зашифрованных файлов закрытого ключа вы можете использовать N разных фраз-паролей - но тогда вам, конечно, придется вводить их все) при минимизации диалога терминала (т.е. когда вы используете один пароль Фраза для всех N файлов закрытого ключа (эта парольная фраза запрашивается только один раз).
-
|/path/to/program [args...]
Этот режим позволяет использовать внешнюю программу, которая действует как канал к определенному устройству ввода; программе отправляется стандартный текст приглашения, используемый для builtin режима on
stdin , и ожидается, что он запишет строки пароля на
stdout . Если требуется несколько паролей (или введен неправильный пароль), дополнительный текст подсказки будет записан после возврата первого пароля, и затем необходимо будет записать больше паролей.
-
exec:/path/to/program
Здесь настраивается внешняя программа, которая вызывается при запуске для каждого зашифрованного файла закрытого ключа. Вызывается с двумя аргументами (первый имеет вид servername:portnumber , второй либо RSA , DSA , ECC , либо целочисленный индекс, начинающийся с 3, если сконфигурировано более трех ключей ), которые указывают, для какого сервера и алгоритма он должен напечатать соответствующую парольную фразу для stdout . В версиях 2.4.8 (не выпущенных) и 2.4.9 он вызывается с одним аргументом, строкой вида servername:portnumber:index ( index
целое число с отсчетом от нуля), которая указывает сервер, TCP-порт и номер сертификата. . Цель состоит в том, чтобы эта внешняя программа сначала запускала проверки безопасности, чтобы убедиться, что система не скомпрометирована злоумышленником, и только после успешного прохождения этих проверок предоставляет парольную фразу.
И эти проверки безопасности, и способ определения парольной фразы могут быть настолько сложными, насколько вам нравится. Mod_ssl просто определяет интерфейс: исполняемая программа, которая предоставляет парольную фразу для stdout . Ни больше, ни меньше! Итак, если вы действительно параноик по поводу безопасности, вот ваш интерфейс. Все остальное должно быть предоставлено администратору в качестве упражнения, потому что локальные требования безопасности очень разные.
Здесь также используется описанный выше алгоритм повторного использования. Другими словами: внешняя программа вызывается только один раз для каждой уникальной парольной фразы.
Пример SSLPassPhraseDialog "exec:/usr/local/apache/sbin/pp-filter"
|
|