domain-key

<domain-key-list>

Тот же ключ подписи, но внутри именованного списка
в конфигурации это строкаdomain-keyвнутри блока <domain-key-list>
То же имя ещё 3:<domain-key-list>Global<virtual-mta><virtual-mta-pool>— часть из них другие настройки, часть та же самая
Ключ, который выбирает подающая сторона

Та же строка, что и на уровне узла, объявленная внутри блока <domain-key-list>. Определение — на общей странице; здесь важно, чем отличается это место.

Список выбирается письмом, а не конфигурацией. Подающая сторона ставит заголовок x-dkim-options с именем списка — и узел ищет ключ только в нём. Не нашёл — письмо не подписывается вовсе, к общим объявлениям поиск не переходит.

Без указания списка он не участвует. Письмо без этого заголовка подписывается по обычному правилу: сначала объявления потока, потом уровня узла.

Сам блок можно объявить только на уровне узла.

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

Собирайте в список полный набор. Поиск за его пределы не выходит, поэтому запасное объявление со звёздочкой в нём уместно — в отличие от общего уровня, где оно перехватывает всё.

Имя списка — часть договорённости с подающей стороной. Оно попадает в заголовок письма, значит меняется не только в конфигурации.

Один список на отправителя. Тогда его имя читается в заголовке письма без пояснений.

Советы про полный набор и имя списка — наши. Из руководства здесь синтаксис заголовка выбора списка, ограничение поиска списком и то, что блок объявляется только на уровне узла.
Пример в конфигурации
# набор ключей одного клиента, вместе с запасным
<domain-key-list keylist-customer-one>
    domain-key m, mail.port25.com, /etc/pmta/m.pem    domain-key base, *, /etc/pmta/base.pem</domain-key-list>
Письмо с заголовком x-dkim-options: s=m;key-list=keylist-customer-one будет искать ключ только здесь. Не найдёт — уйдёт без подписи.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Ждут отката к общим объявлениям

§ 3.3.19

Чем чреватоПоиск за пределы названного списка не выходит. Письмо уходит неподписанным, хотя подходящий ключ на узле объявлен — просто в другом месте.
Как заметитьПисьма с заголовком выбора списка не подписаны, остальные подписаны.
Как правильноДобавить в список недостающее объявление — или запасное со звёздочкой.

Переименовывают список, не предупредив подающую сторону

наш опыт

Чем чреватоИмя списка стоит в заголовке письма. После переименования письма называют список, которого нет, и подписываться перестают.
Как заметитьПодпись пропала у одного отправителя сразу после правки конфигурации.
Как правильноМенять имя вместе с подающей стороной либо оставлять прежнее имя как второй список.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
domain-key <key-entry>
Значения
три значения через запятую — селектор, домен или звёздочка, путь к файлу либо ссылка на хранилище секретов
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<domain-key-list>
Сколько раз
можно повторять
Всё здесь — из руководства, с разделом.
Наследование
Объявления внутри списка не участвуют в обычном поиске: они доступны только письмам, которые назвали этот список заголовком x-dkim-options. Наследования у списка нет — сам блок <domain-key-list> объявляется только на уровне узла. Подхватывается по pmta reload.
Как проверить на узле
Какой список назвало письмо и нашёлся ли в нём ключ, видно по его заголовкам:
grep -n 'domain-key-list' /etc/pmta/config
grep -i 'DKIM-Signature' /var/log/pmta/pmta.log | tail -5
Отсутствие заголовка подписи при заданном списке означает, что совпадения в нём не нашлось: к общим объявлениям поиск не переходит. Хаб списками ключей не пользуется.
В Хабе
Управляется
DNS → Ключи подписи
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Подпись и аутентификация писем · Разделение отправителей