smtp-server-tls-ca-file

Global

Список корневых сертификатов для проверки подающих клиентов
в конфигурации это строкаsmtp-server-tls-ca-fileвнутри блока Global
Кому верить, проверяя того, кто подаёт почту

Обратная сторона проверки: не мы предъявляем сертификат, а нам. Строка называет файл с корневыми сертификатами, по которым проверяется предъявленная клиентом цепочка.

Нужно это только при взаимной проверке. Обычная подача её не использует: клиент шифрует соединение и авторизуется логином и паролем. Клиентские сертификаты появляются там, где стороны договорились именно так.

Сертификаты — в формате PEM, как и везде.

Главная ловушка — считать, что строка что-то включает. Она называет, кому верить, но не требует от клиента предъявлять сертификат. Взаимная проверка настраивается со стороны источника и слушателя; сам по себе список ничего не меняет.
Что делает Хаб. Не пишет: подача идёт по логину и паролю либо с разрешённых адресов, и клиентских сертификатов у нас нет. Строка понадобится, если появится платформа, которая подаёт почту по взаимной проверке, — тогда вместе с ней надо решить, кто выпускает клиентские сертификаты и как их отзывать.
Рекомендуемые значения

Значение — путь к файлу. Что учесть:

Что Замечание
список своего центра обычный случай для взаимной проверки
публичные корни почти всегда лишнее: подающих клиентов немного и они свои
отзыв сертификата узел его не проверяет — отозванный, но не истёкший пройдёт

Без договорённости с подающей стороной строка бесполезна.

Назначение и требование PEM — из руководства (§ 3.3.1.11). Замечание про отзыв и про бесполезность в одиночку — наши.
Пример в конфигурации
# взаимная проверка: свой центр выпускает сертификаты подающим
smtp-server-tls-ca-file /etc/pmta/certchain.pem
Пример руководства. Сама по себе строка ничего не требует — она лишь называет, чьим сертификатам верить, если клиент их предъявит.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Ставят список, ожидая, что клиенты начнут предъявлять сертификаты

наш опыт

Чем чреватоСтрока только называет доверенные центры. Требование предъявить сертификат задаётся не здесь, и без него список не участвует ни в одном соединении.
Как заметитьФайл настроен, поведение подачи не изменилось.
Как правильноРешить вопрос со стороны приёма — источника и слушателя, — а список держать как дополнение к нему.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
smtp-server-tls-ca-file <path>
Значения
путь к файлу с корневыми сертификатами в формате PEM
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
Global
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Директива пишется в корне файла, раздел Global, и действует на весь узел. Уровней у неё нет; у отдельного слушателя есть своя строка — tls-ca-file в <smtp-listener>.
Как проверить на узле
Что файл читается и содержит ожидаемые центры, проверяют до включения:
openssl crl2pkcs7 -nocrl -certfile /etc/pmta/certchain.pem | openssl pkcs7 -print_certs -noout
В выводе перечислены субъекты всех сертификатов файла. Если списка нет или он пуст, взаимная проверка не сработает — а сообщения об этом узел не даст.
В Хабе
Цена ошибки
безопасно: неверное значение ничего не ломает
Сценарии
Шифрование соединений