У меня проблема, когда мои подписи DKIM не работают везде. Был вопрос по этому поводу здесь, но оригинальный плакат ответил на его собственный вопрос, и ответ кажется несвязанным.После некоторых копаний я подумал, что это может быть проблема канонизации с OpenDKIM и что Исправить CRLF
Настройка конфигурации может исправить это, но, похоже, этого не произошло. Теперь я думаю, что могут быть проблемы с моей реализацией openssl (см. почему ниже). Как мне перейти отсюда, чтобы продолжить диагностику и исправить это?
Мои диагностические шаги на сегодняшний день
Первоначально это всплыло, когда я заметил, что электронные письма с моих собственных доменов на мою учетную запись gmail имели сбои DKIM в заголовке. Погуглив, как это проверить, я обнаружил, что README OpenDKIM включает раздел по тестированию. Это кажется немного устаревшим, так как пара ресурсов на самом деле не работает ([email protected], похоже, не существует, а [email protected] отбрасывает сообщение как спам, что... на самом деле не идеально подходит для службы тестирования :)); тем не менее, верификаторы Port25 поначалу казались действительно полезными, потому что они не просто сообщают вам, что вы терпите неудачу, они включают канонизированные заголовки. Итак, мой первый тест вернулся с этим:
Канонизированные заголовки:
from:My'20'Name'20'<[email protected]>'0D''0A'
Тема:Port25'20'check-auth'20'1'0D''0A'
Дата:Пт,'20'1'20'Окт'20'2021'20'07:10:19'20'+0200'0D''0A'
to:[email protected]'0D''0A'
dkim-signature:v=1;'20'a=rsa-sha256;'20'c=расслабленный/расслабленный;'20'd=mydomain.com;'20's=по умолчанию;'20't=1633065019;'20' bh=2ZDQvBeN3kIWoOxg0Ccz1E/Pi+j4hDPFKwXDhxotTAA=;'20'h=От:Тема:Дата:Кому:От;'20'b=
я включил Сохранить временные файлы
в opendkim.conf
, а сохраненные конанизированные заголовки на стороне моего сервера выглядят так:
от: Мое имя <[email protected]>
Тема:Порт25 проверка авторизации 1
дата:Пт, 1 окт 2021 07:10:19 +0200
to:[email protected]
dkim-подпись:v=1; а=rsa-sha256; c=расслабленный/расслабленный; д=мойдомен.com; с=по умолчанию; т=1633065019; bh=2ZDQvBeN3kIWoOxg0Ccz1E/Pi+j4hDPFKwXDhxotTAA=; h=От:Тема:Дата:Кому:От; б=
На мой взгляд, они выглядели одинаково, но я начал задаваться вопросом о «0D» «0A» на стороне Port25. Я отправляю исходное сообщение с Mac и на самом деле не знал, что MacOS использует для EOL. Еще немного гугления, и я наткнулся на это вопросы и ответы по стеку. Это побудило меня сначала попытаться отправить электронное письмо в виде простого текста, но возникла та же проблема с ошибкой. Выбирая другой вариант, я включил Исправить CRLF
в OpenDKIM. Действительно, открывая локальный временный файл с помощью vim в двоичном режиме, кажется, что настройка работает:
от:Мое имя <[email protected]>^M
тема:Тест с фиксированным CRLF(?)^M
Дата:Пт, 1 Окт 2021 07:40:52 +0200^M
to:[email protected]^M
dkim-подпись:v=1; а=rsa-sha256; c=расслабленный/расслабленный; д=мойдомен.com; с=по умолчанию; т=1633066853; bh=tt5a2hZTsPGjeXhj9bcF3Kt9N5uk4aYb/j8ciXTYUZA=; h=От:Тема:Дата:Кому:От; б=
К сожалению, до сих пор нет любви от верификатора Port25.
В качестве последней попытки я решил попробовать это на своем собственном сервере — отправить электронное письмо между двумя разными доменами, которые оба размещены локально. Это стало хоть немного интересно.
Журнал почты говорит:
...
1 октября, 05:50:27 ip-10-0-200-157 opendkim[22246]: 654F98004C: добавлено поле DKIM-Signature (s=default, d=mydomain.com)
...
1 октября, 05:50:27 ip-10-0-200-157 amavis[21845]: (21845-06) Проверка: hRgGGArUlLf0 [88.101.121.213] <[email protected]> -> <[email protected]>
...
1 октября, 05:50:29 ip-10-0-200-157 amavis[21845]: (21845-06) hRgGGArUlLf0 FWD от <[email protected]> -> <[email protected]>, BODY=7BIT 250 2.0.0 от MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 OK: в очереди как 5248A80051
1 октября, 05:50:29 ip-10-0-200-157 amavis[21845]: (21845-06) Пройдено CLEAN {RelayedInbound}, [88.101.121.213]:63859 [88.101.121.213] <[email protected] > -> <[email protected]>, идентификатор очереди: 654F98004C, идентификатор сообщения: <[email protected]>, mail_id: hRgGGArUlLf0, число обращений: -0,799, размер: 3683, queued_as: 5248A80051, 1878 мс
ОДНАКО, в реальных заголовках полученной почты я вижу
...
Статус X-Spam: Нет, оценка = -0,799 тестов = [ALL_TRUSTED = -1, DKIM_INVALID = 0,1, DKIM_SIGNED = 0,1, HTML_MESSAGE = 0,001] autolearn = нет autolearn_force = нет
Dkim-подпись: v=1; а=rsa-sha256; c=расслабленный/расслабленный; д=мойдомен.com; с=по умолчанию; т=1633067427; bh=+FsxBlX8LDcIVqvq7tKOtml1vsfEjh0rYTRVokBgmQ4=; h=От:Тема:Дата:Кому:От; b=yDkI63wnvN8deIU4AtruGu4r/ybCTBLzmdwkTEhSYNCU56oGp0lP8n4FnXW7H67TL DFtlw/U9/MZPhR0Jeorl3gBdLebBV02v60wpLlFKXF5N4NL/cZbp8/U0liGZGVPoWj PP+OV/uOwNMDUhLG2I8jN88Zi9sHduo8xr7DOmy4=
...
Dkim-Filter: OpenDKIM Filter v2.11.0 ip-10-0-200-157.eu-central-1.compute.internal 654F98004C
...
Результаты аутентификации: mx.mymaildomain.com (amavisd-new); dkim=fail (1024-битный ключ) Reason="fail (ошибка OpenSSL: данные слишком велики для модуля)" header.d=mydomain.com
Эта последняя строка — моя единственная оставшаяся подсказка. Я ... не могу себе представить, что какие-либо данные на самом деле слишком велики, но, может быть, у меня проблемы с OpenSSL? В частности, даже если он применяет подпись, подпись какая-то неправильная? Я действительно совершенно в недоумении, куда идти отсюда.
Любые предложения о том, что не так или что делать дальше, очень ценятся.
Это с OpendKIM, AmavisD, Postfix:
# opendkim -V
opendkim: Фильтр OpenDKIM v2.11.0
Скомпилировано с помощью OpenSSL 1.0.1e-fips 11 февраля 2013 г.
СМФИ_ВЕРСИЯ 0x1000001
либмильтер версии 1.0.1
Поддерживаемые алгоритмы подписи:
rsa-sha1
rsa-sha256
Поддерживаемые алгоритмы канонизации:
расслабленный
просто
Варианты активного кода:
QUERY_CACHE
USE_DB
USE_LDAP
USE_ODBX
libopendkim 2.11.0: query_cache
# амависд -V
amavisd-новый-2.12.0 (20190725)
# postconf mail_version
почтовая_версия = 2.10.1