Проверка DKIM записи
Найдём DKIM-ключ домена по селектору, проверим синтаксис и длину ключа.
Проверка DKIM-записи и ключа
DKIM подписывает каждое письмо ключом домена, а получатель проверяет подпись по публичному ключу из DNS — на имени селектор._domainkey.домен. Инструмент находит эту запись по вашему селектору или перебирает 30 частых (Google Workspace, Microsoft 365, Mailchimp, SendGrid, Zoho, Fastmail, Proton, HubSpot и другие), идёт по CNAME, разбирает теги и считает длину RSA-ключа. Селекторы через DNS перечислить нельзя, поэтому «не найдено» означает только «не найдено среди проверенных».
Как пользоваться
- Введите домен; селектор можно взять из заголовка DKIM-Signature (s=)
- Без селектора проверим 30 частых — это занимает несколько секунд
- Проверьте статус ключа и замените ключи короче 2048 бит
FAQ
Как работает DKIM и что проверяет инструмент
DKIM (DomainKeys Identified Mail) добавляет к каждому письму цифровую подпись. Почтовый сервер отправителя подписывает заголовки и тело письма закрытым ключом, а получатель берёт открытый ключ из DNS и проверяет, что письмо не меняли по дороге и что его действительно отправил владелец домена. Открытый ключ лежит в TXT-записи на имени селектор._domainkey.домен.
Проверка DKIM находит эту запись, при необходимости проходит по CNAME, разбирает теги и оценивает ключ:
| Статус | Что значит |
|---|---|
| ключ в порядке | RSA 2048 бит и больше или Ed25519, ошибок в записи нет |
| ключ 1024 — обновить | Пока принимается, но это минимум; переходите на 2048 |
| слабый ключ | Короче 1024 бит — по RFC 8301 получатели не должны принимать такие подписи |
| ключ отозван | Пустой p=: подписи этим селектором не пройдут |
| ошибка в записи | Ключ не читается, неверная версия или неизвестный тип ключа |
Где найти DKIM-селектор
Селектор — это имя ключа, его выбирает отправитель, и у домена может быть сколько угодно селекторов для разных сервисов. В DNS нет способа получить их список, поэтому без селектора инструмент проверяет 30 самых частых. Если ничего не нашлось, это значит только «не найдено среди проверенных», а не «DKIM нет».
Точный селектор есть в любом письме, отправленном с домена. В Gmail откройте письмо → «Показать оригинал» и найдите заголовок:
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=example.com; s=google;
h=from:to:subject:date:message-id; bh=...; b=...
s=google — селектор, d=example.com — домен подписи. Результат проверки у получателя виден в заголовке Authentication-Results: dkim=pass [email protected] header.s=google. Для DMARC важно, чтобы домен d= совпадал с доменом в поле From — это проверяет проверка DMARC.
Селекторы популярных сервисов
| Сервис | Селектор и тип записи |
|---|---|
| Google Workspace | google по умолчанию (можно задать свой), TXT с ключом |
| Microsoft 365 | selector1 и selector2, CNAME в зону Microsoft |
| Mailchimp / Mandrill | k1 (а также k2, k3), CNAME |
| SendGrid | s1 и s2, CNAME на sendgrid.net |
| Amazon SES | три случайных селектора на домен, CNAME на dkim.amazonses.com — угадать нельзя, берите из консоли SES или из заголовка |
| Хостинги с cPanel/Plesk | часто default или mail |
Названия и схемы у сервисов меняются, поэтому сверяйтесь с их документацией. Если запись — CNAME, ключ хранит и ротирует сервис; это нормально. Плохо, если CNAME есть, а по адресу назначения записи нет: подпись не пройдёт. В Microsoft 365 это обычно значит, что DKIM для домена не включён в центре администрирования.
Синтаксис DKIM-записи
v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA...
v=DKIM1— версия; необязательна, но если есть — стоит первой.k— тип ключа:rsa(по умолчанию) илиed25519.p— открытый ключ в base64. Пустое значение означает, что ключ отозван.t=y— режим тестирования: получатели не должны отличать подписанные письма от неподписанных. Уберите флаг после запуска.t=s— строгий режим для поддоменов.h— допустимые хэш-алгоритмы. Если там толькоsha1, подписи не пройдут: sha1 по RFC 8301 больше не принимается.s— тип сервиса; для почты*илиemail.
Ключ 2048 бит длиннее 255 символов, поэтому в DNS он хранится как несколько строк внутри одной TXT-записи. Большинство панелей делит его сами; если панель требует вставить вручную, разбейте значение на части в кавычках без пробелов внутри ключа.
Длина ключа и ротация
Используйте RSA 2048 бит. Чтобы заменить ключ без простоя:
- Создайте новый ключ под новым селектором (например,
s2026) и опубликуйте его в DNS. - Проверьте запись здесь, указав новый селектор.
- Переключите подпись на новый селектор в почтовом сервере или сервисе.
- Через несколько дней, когда письма со старой подписью доставлены, опубликуйте старый селектор с пустым
p=, а позже удалите его.
Для своего сервера ключ можно сгенерировать так (OpenDKIM или вручную через OpenSSL):
opendkim-genkey -b 2048 -s s2026 -d example.com # или openssl genrsa -out dkim.key 2048 openssl rsa -in dkim.key -pubout -outform der | base64
DKIM, SPF и DMARC вместе
DKIM переживает пересылку письма, а SPF при пересылке обычно ломается, поэтому для DMARC подпись DKIM вашим доменом — самый надёжный способ пройти проверку. С февраля 2024 года Google и Yahoo требуют от массовых отправителей и SPF, и DKIM, а также DMARC-запись; детали меняются, так что сверяйтесь с их актуальными правилами для отправителей. Проверьте весь набор: SPF, DMARC и MX-записи.