dkim-algorithm

<domain>

Каким алгоритмом считается подпись
в конфигурации это строкаdkim-algorithm rsa-sha256внутри блока <domain>
Выбор, которого больше нет

Задаёт алгоритм подписи. Значений два: rsa-sha256 — умолчание, и rsa-sha1 — историческое.

Выбирать тут нечего. Хеш-функция sha1 признана непригодной для подписей: для неё показаны практические столкновения, и почтовые стандарты запретили её в DKIM. Крупные приёмники такую подпись либо не проверяют вовсе, либо считают недействительной.

Строка осталась ради совместимости со старыми конфигурациями. В новой её не должно быть.

Главная ловушка — переносят строку из старого конфига. Значение rsa-sha1 в унаследованной конфигурации выглядит безобидно и переезжает вместе с остальными строками. Письма после этого подписаны так, будто подписи нет: приёмник её не принимает, а в вашей конфигурации всё «настроено».
Что делает Хаб. Не пишет — остаётся вендорское rsa-sha256. Это единственное пригодное значение, и трогать его незачем.
Рекомендуемые значения

Оставьте умолчание. Другого пригодного значения нет.

Проверьте унаследованные конфигурации. Строка с rsa-sha1 переезжает молча и обесценивает подпись.

Длина ключа важнее алгоритма. Ключи короче 1024 бит частью приёмников уже не принимаются; при генерации берут 2048.

Замечание о длине ключа и совет проверять унаследованные конфигурации — наши. Из руководства здесь оба значения и умолчание.
Пример в конфигурации
# строки быть не должно; показана ради того, что её удаляют
<domain *>
    dkim-algorithm rsa-sha256</domain>
Значение совпадает с умолчанием — строка здесь только затем, чтобы её не перепутали с унаследованной rsa-sha1.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Переносят rsa-sha1 из старой конфигурации

наш опыт

Чем чреватоПодпись считается устаревшим алгоритмом и приёмниками не принимается. Формально она есть, фактически её нет — и в конфигурации всё выглядит настроенным.
Как заметитьВ поле a= подписи стоит rsa-sha1.
Как правильноУбрать строку — умолчание верное.

Меняют алгоритм, разбираясь с провалами проверки

наш опыт

Чем чреватоПричина провалов почти никогда не в алгоритме: чаще виноват ключ, набор заголовков или запись в DNS. Смена алгоритма меняет подпись, не устраняя причину.
Как заметитьЗначение меняли, доля провалов та же.
Как правильноСмотреть поля d=, s= и h= подписи и запись в DNS.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
dkim-algorithm <enumeration>
Значения
rsa-sha256 или rsa-sha1; второе значение историческое и приёмниками не принимается
Умолчание
rsa-sha256 § 3.3.10.21
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<domain>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Значение сливается по блокам <domain> от общего к частному: побеждает наиболее подходящий блок, а не последний по файлу. Подхватывается по pmta reload; на письма в очереди действует со следующей попытки.
Как проверить на узле
Действующее значение печатает команда настроек очереди; что вышло — видно в поле a= подписи:
pmta show settings gmail.com/vmta1 | grep -i dkim-algorithm
grep -i 'DKIM-Signature' /var/log/pmta/pmta.log | tail -3
Поле a= со значением rsa-sha1 в подписи означает, что письма фактически идут неподписанными для большинства приёмников. Хаб этой строки не пишет.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Подпись и аутентификация писем