http-webhook-ca-file

<acct-file>

Файл доверенных центров для проверки сертификата приёмника
в конфигурации это строкаhttp-webhook-ca-fileвнутри блока <acct-file>
Кому узел верит на другом конце

Файл в формате PEM с сертификатами удостоверяющих центров. По ним узел проверяет сертификат, который предъявил приёмник. Умолчания нет — без строки проверка идёт по хранилищу центров операционной системы.

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

Это про приёмника, а не про узел. Свой сертификат узел предъявляет строкой http-webhook-certificate; эта — про то, кому верить.

Главная ловушка — задать файл и забыть о нём при смене приёмника. Новый приёмник с сертификатом от другого центра не пройдёт проверку, а симптом будет привычный: копятся промежуточные файлы. По умолчанию причину выдаёт лишь краткая запись об ошибке в журнале; подробности — с http-webhook-log-verbose.
Что делает Хаб. Не пишет: у Хаба сертификат от публичного центра, и проверка по системному хранилищу проходит.

Строка понадобится, если Хаб развернут внутри периметра со своим центром сертификации — тогда узлам надо будет отдать его сертификат этой строкой.

Рекомендуемые значения

Умолчание годится, пока приёмник с публичным сертификатом:

Значение Когда
не задавать у приёмника сертификат от публичного центра
путь к PEM приёмник со своим центром, или надо сузить доверие
Формат PEM и назначение — из руководства (§ 3.3.11.20). Оба повода задавать строку и предупреждение про смену приёмника — наши.
Пример в конфигурации
# Хаб внутри периметра, сертификат от своего центра
<acct-file /var/log/pmta/webhook.json>
    http-webhook-url https://hub.internal/api/telemetry/pmta/7
    http-webhook-ca-file /etc/pmta/internal-ca.pem</acct-file>
При смене приёмника про эту строку надо вспомнить отдельно: новый сертификат может быть от другого центра.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Сужают доверие и забывают об этом при смене приёмника

наш опыт

Чем чреватоНовый приёмник с сертификатом от другого центра проверку не пройдёт. Симптом привычный — копятся файлы, — и на строку доверия думают в последнюю очередь.
Как заметитьТелеметрия пропала сразу после переезда приёмника.
Как правильноПроверить цепочку командой выше и обновить файл центров.

Кладут в строку сертификат самого узла

наш опыт

Чем чреватоСтрока задаёт доверенные центры для чужого сертификата. Собственный узел предъявляет строкой http-webhook-certificate.
Как заметитьСтрока задана, приёмник по-прежнему не принимает узел.
Как правильноСвой сертификат — в http-webhook-certificate, чужие центры — сюда.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
http-webhook-ca-file <path>
Значения
путь к файлу PEM с сертификатами центров
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<acct-file>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Наследования нет: строка живёт внутри своего <acct-file> и касается проверки только его приёмника. Разные потоки учёта могут доверять разным центрам.
Как проверить на узле
Проверяем цепочку приёмника ровно тем файлом, который задаём:
openssl s_client -connect HOST:443 -CAfile /etc/pmta/internal-ca.pem -brief </dev/null
Отсутствие строки Verification error означает, что цепочка сошлась и файл подходит. Ошибка проверки — узел откажется отправлять пачку.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Собрать телеметрию