http-tls-ca-file

Globalнужен перезапуск

Файл доверенных центров для клиентских сертификатов веб-монитора
в конфигурации это строкаhttp-tls-ca-fileвнутри блока Global
Кому монитор верит на входе

Файл в формате PEM с сертификатами удостоверяющих центров. По ним монитор проверяет сертификат, который прислал клиент, если запросил его через http-tls-request-client-certificate. Умолчания у строки нет.

Своего сертификата монитор здесь не берёт. Это единственное место в конфигурации, где шифрование настраивают без строки с сертификатом: у приёма почты она есть (smtp-server-tls-certificate), у слушателя и у входа Transmissions API — тоже, а у монитора нет. Его сертификат лежит файлом — /var/lib/pmta/webmon.pem на Unix, db\webmon.pem в каталоге установки на Windows (§ 5.1).

Самоподписанный сертификат монитор выпускает себе сам при установке. Мы это проверили на узле парка: в рукопожатии приходит сертификат с общим именем по имени хоста, и проверка цепочки ожидаемо не проходит. Заменить его на настоящий можно только одним способом — переписать файл и перезапустить монитор; строки конфигурации для этого нет.

Практический вывод для парка. Выдача сертификата монитору — не правка конфигурации, а доставка файла плюс перезапуск службы. Это отдельная операция, и в порядке применения конфигурации её нет.

Главная ловушка — искать здесь свой сертификат. Имя строки похоже на tls-certificate, и в неё кладут собственный сертификат узла. Монитор его не подхватит: строка — про чужие сертификаты, про то, кому верить на входе.
Что делает Хаб. Не пишет: клиентскими сертификатами к монитору никто не ходит. Замена самоподписанного сертификата монитора на настоящий у нас тоже не автоматизирована — это доставка файла и перезапуск службы, отдельной задачей.
Рекомендуемые значения

Строка нужна только там, где клиенты представляются сертификатом:

Значение Когда
не задавать (умолчание) клиенты ходят по ключу управления
путь к PEM клиенты представляются своим сертификатом

Сертификат самого монитора задаётся не здесь, а файлом /var/lib/pmta/webmon.pem.

Формат PEM и назначение файла — из руководства (§ 3.3.1.58.19). Путь к сертификату самого монитора и способ его замены — оттуда же (§ 5.1). Что сертификат самоподписанный и выпущен на имя хоста — наша проверка на узле парка.
Пример в конфигурации
# доверенные центры для клиентских сертификатов
http-mgmt-port 1000
http-tls-ca-file /etc/pmta/certchain.pem
Пример руководства. Свой сертификат монитора этой строкой не задаётся — он лежит файлом /var/lib/pmta/webmon.pem.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

Типичные ошибки и проблемы

что делают не так и чем это кончается3 ошибки▶

Кладут в строку собственный сертификат монитора

наш опыт

Чем чреватоМонитор его не подхватит: строка задаёт доверенные центры для чужих сертификатов. Свой он берёт из файла webmon.pem.
Как заметитьСтрока задана, а браузер по-прежнему ругается на самоподписанный сертификат.
Как правильноПереписать /var/lib/pmta/webmon.pem и перезапустить монитор.

Меняют файл сертификата и перезагружают конфигурацию

наш опыт

Чем чреватоpmta reload монитора не касается. Новый сертификат лежит на диске и не предъявляется.
Как заметитьФайл заменён, а в рукопожатии прежний сертификат.
Как правильноПерезапустить веб-монитор.

Задают файл, выключив запрос клиентского сертификата

§ 3.3.1.58.19

Чем чреватоПроверять нечего: при http-tls-request-client-certificate false клиент сертификата не присылает. Умолчание у запроса — true.
Как заметитьФайл задан, а в журнале монитора нет ни одной проверки.
Как правильноВернуть запрос (умолчание true) либо убрать строку.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
http-tls-ca-file <path>
Значения
путь к файлу PEM
Применение
нужен перезапуск сервиса
Очередь
уже поставленное в очередь не затронет
Где писать
Global
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Наследования у директивы нет: она пишется в корне файла, раздел Global, и действует на весь управляющий интерфейс узла.
Как проверить на узле
Сначала смотрим, какой сертификат монитор предъявляет сам, — по нему сразу видно, самоподписанный он или настоящий:
openssl s_client -connect NODE:1000 -brief </dev/null
verify error:num=18:self-signed certificate — стоит сертификат от установки. Peer certificate: CN=… показывает, на какое имя он выпущен. Сам файл доверенных центров проверяется командой openssl crl2pkcs7 -nocrl -certfile ФАЙЛ | openssl pkcs7 -print_certs -noout.
В Хабе
Цена ошибки
безопасно: неверное значение ничего не ломает
Сценарии
Безопасность узла