Amazon SES и подтверждение DKIM в разных панелях управления

Amazon SES нам выдали записи для подтверждения владением доменом:
"Record name","Record type","Record Value"
52djzcnmdacecxkbgzwxsfxpmnhfa57k._domainkey.artemka45.ru","CNAME","52djzcnmdacecxkbgzwxsfxpmnhfa57k.dkim.amazonses.com
"mrxcednnqdhzyaf6725wxcnwdc3p7yaf._domainkey.artemka45.ru","CNAME","mrxcednnqdhzyaf6725wxcnwdc3p7yaf.dkim.amazonses.com"
"srmtzrxn7rr43o2erisj3jpqc3u4ej7b._domainkey.artemka45.ru","CNAME","srmtzrxn7rr43o2erisj3jpqc3u4ej7b.dkim.amazonses.com"
ISPmanager
Но панель управления ISPmanager отказалась его принимать.И выдала ошибку:

52djzcnmdacecxkbgzwxsfxpmnhfa57k._domainkey.artemka45.ru
В строке имени CNAME содержится 118 символов — на длину оно не ругается.
52djzcnmdacecxkbgzwxsfxpmnhfa57k.domainkey.artemka45.ru
Так — принимает. ))) Значит ругается на нижнее подчеркивание в имени CNAME.
Обратившись на форум разработчиков этой панели — так и не получил ответ от них.
Обратился к хостеру сервера — и служба поддержки так и сказала, что ошибка не ихняя и что обратятся к разработчикам ISPmanager, но не обещали, что разработчики быстро поправят и поправят ли вообще…
А клиент просил, чтобы было подтверждение цифровой подписью для рассылки e-mail.
Selectel.ru
Пришлось использовать мой DNS сервер Selectel.ruНо у них тоже есть свои особенности, в том чтобы имя домена было написано по особому.
К примеру Google выдаёт запись DKIM в виде:
"google._domainkey",
"TXT",
"v=DKIM1; k=rsa; p=MIG...."
А в этот DNS надо записывать запись имени в полном виде т.е. не
"google._domainkey", а «google._domainkey.artemka45.ru»
Поэтому тут записываем полностью имя домена: «52djzcnmdacecxkbgzwxsfxpmnhfa57k._domainkey.artemka45.ru», а не как обычно в ISPmanager короткую "52djzcnmdacecxkbgzwxsfxpmnhfa57k._domainkey"

Запись CNAME прописалась нормально и очень быстро.
Но тут еще одна особенность: Если ваш ключ DKIM длиной 1024 бита то ваша строка будет выглядеть так:
v=DKIM1; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCgtGNweB764HKp0bvJ4otUYUVIHg3CFIPF7xvCAo9SadROvgjdUNu9RGYYZj5En37qxBZqz+CwSA7CytqbcQ5W8VD41ToXLqFMpcSWmoHslc89XQRGOF4bVD2VzWDl19JuTllCa/o4eB92+2V9HPiF9M7y/2dWZsA7mQuPQUaImQIDAQAB3bU1eI4SP6JHKKERexk/A5+bUB2ozAkCAwEAAQ==
строка содержит 267 символов, а Selectel её обрежет до 255 символов и ваша подпись не будет работать, в то самое время Яндекс.PDD и ISPmanager обрабатывают строку полностью.
PS
Проверяем установку CNAME записи с серверов Google
nslookup -type=any 52djzcnmdacecxkbgzwxsfxpmnhfa57k._domainkey.artemka45.ru 8.8.8.8

Если видите, что nslookup выдал запись с текстом "canonical name =" то это означает, что запись CNAME установлена правильно и отдаётся DNS-сервером.
Ставим DKIM выданный после верификации домена от Amazon SES:
"_amazonses.artemka45.ru", "TXT", "WaNsUTA4ZX7sv0AxeKizyMlsvBqHNeukw/f+f7B3jIA="

Проверяем установку записи с сервера DNS т.е. ns1.selectel.org
nslookup -type=any _amazonses.artemka45.ru ns1.selectel.org

Как видите, запись открытого ключа шифрования DKIM, который установили — отдаётся правильно.
Яндекс.PDD
Тут тоже свои особенности записи DNS и которые в плюс.
При записи:
"srmtzrxn7rr43o2erisj3jpqc3u4ej7b._domainkey.artemka45.ru",
"CNAME",
"srmtzrxn7rr43o2erisj3jpqc3u4ej7b.dkim.amazonses.com"
В записи надо домен перенаправления указывать на конце с точкой «srmtzrxn7rr43o2erisj3jpqc3u4ej7b.dkim.amazonses.com.», а если не укажете точку, то Яндекс вас сам поправит и внесёт нужную запись.
Имя домена CNAME можно указывать и "srmtzrxn7rr43o2erisj3jpqc3u4ej7b._domainkey.artemka45.ru" и сокращённо "srmtzrxn7rr43o2erisj3jpqc3u4ej7b._domainkey"
так и так Yandex.PDD отдаст запись правильно.

Amazon SES verified
Если долгое время проверка ваших CNAME-записей не прошла, то увидите это:

Такое увидите, если Amazon ожидает проверки вашей записи.

После подтверждения владения доменом. Тут надо включить, чтобы выши письма подписывались DKIM подписью.

Так будут подписываться все исходящие письма с вашей цифровой подписью.

Так будет выглядеть если всё прошло удачно и ваша проверка и запись открытого ключа шифрования DKIM внесена в DNS.

PS Так-то, данное исследование пригодилось чтобы переписать и найти ошибки в моём скрипте по быстрому переносу DNS записей от одного хостера к другому. В случае аварии у моего DNS-провайдера, все сайты будут переведены на другой хостинг. Тем самым вовремя заметил, что selectel.ru обрезает цифровую подпись, а так бы не заметил и перенеся все сайты туда — часть бы не работала с длинной строкой. Поэтому приходится постоянно дорабатывать этот скрипт.
Нет комментариев