Если отправляете почту со своего домена, запись DKIM должна стать частью настройки DNS. Правильная конфигурация помогает аутентификации и доставляемости. Без DKIM у получателя нет этого способа проверить целостность подписанных данных письма. Google, Yahoo и Microsoft публикуют требования для отдельных групп отправителей; DKIM полезен и при небольших объемах. Уточняйте актуальные правила каждого сервиса.
Руководство охватывает создание ключей, публикацию DNS, включение подписи и проверку. Здесь только порядок действий, синтаксис и типичные ошибки. Независимо от того, создаете запись вручную или используете управляемую платформу, основные принципы одинаковы.
Что такое запись DKIM?
Это TXT-запись DNS с открытой частью криптографической пары ключей. Почтовый сервер подписывает исходящие сообщения закрытым ключом. Получатель получает открытый ключ из DNS и проверяет подпись: ответственность подписывающего домена и целостность подписанных заголовков и охваченного подписью содержимого. DKIM определен в RFC 6376 и является важной частью современной почтовой аутентификации.
Создание записи DKIM за 4 шага
Шаг 1: создайте пару ключей DKIM
До публикации записи нужна пара ключей. Закрытый остается в подписывающей системе, открытый публикуется в DNS. Способ генерации зависит от вашей конфигурации отправки.
Если пользуетесь почтовым сервисом Google Workspace, Microsoft 365 или Zoho, поставщик предоставляет ключи и DNS-настройки. В Google Workspace откройте Консоль администратора > Приложения > Google Workspace > Gmail > Аутентификация почты и выберите создание новой записи. Названия элементов интерфейса могут меняться.
Если управляете своим почтовым сервером Postfix, Exim или OpenDKIM, создайте пару из командной строки:
openssl genrsa -out dkim_private.pem 2048
openssl rsa -in dkim_private.pem -pubout -out dkim_public.pem
По возможности используйте 2048-битные ключи. Старые инструкции упоминают 1024 бита; в 2026 году эта длина дает меньший запас криптографической стойкости. Ключ длиной 1024 бита не обязательно отвергается всеми получателями. Уточните их требования и поддержку длинных записей DNS-провайдером.
Выберите селектор, то есть метку конкретного ключа. Селекторы позволяют менять ключи и использовать разные пары для разных сервисов. Часто встречаются google, s1, mail2026 или название сервиса, например sendgrid.
Шаг 2: добавьте открытый ключ в DNS
Теперь создайте DKIM в DNS-зоне домена. Войдите к провайдеру, например Cloudflare, Route 53, GoDaddy или Namecheap, и добавьте TXT-запись. Следуйте формату ввода его панели.
Поле хоста или имени:
selector._domainkey.yourdomain.com
Замените selector меткой, выбранной на шаге 1. Для s1 и домена example.com полное имя записи:
s1._domainkey.example.com
Поле значения:
v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2K4PavXoNY8eGK2u...truncated...base64encodedpublickey
Тег p= содержит полный открытый ключ в Base64. Удалите маркеры PEM, такие как -----BEGIN PUBLIC KEY-----, и переносы строк. Сами данные ключа должны оставаться непрерывными, без вставленных разделителей.
Важно: Одна строка TXT ограничена 255 октетами. Обычный RSA-ключ длиной 2048 бит требует нескольких частей. Некоторые панели делят автоматически, другие требуют ручного разделения строками в двойных кавычках. Используйте части длиной не более 255 символов внутри одной записи, а не отдельные TXT-записи. При проверке DKIM части соединяются.
Шаг 3: включите подпись DKIM на почтовом сервере
Одна DNS-запись ничего не подписывает. Отправляющий сервер должен использовать закрытый ключ для исходящих сообщений.
Google Workspace: Нажмите «Начать аутентификацию» в той же панели, где создали ключ.
OpenDKIM с Postfix/Exim: Измените /etc/opendkim.conf:
Selector s1
KeyFile /etc/opendkim/keys/example.com/dkim_private.pem
Domain example.com
Socket inet:8891@localhost
Для Postfix добавьте milter в /etc/postfix/main.cf:
milter_default_action = accept
milter_protocol = 6
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891
Перезапустите оба сервиса:
sudo systemctl restart opendkim
sudo systemctl restart postfix
Сторонние сервисы отправки SendGrid, Mailgun и Amazon SES имеют собственные процедуры активации. Обычно они предоставляют CNAME или TXT, которые нужно опубликовать и затем проверить из панели. Следуйте текущей инструкции конкретного поставщика.
Шаг 4: проверьте запись
Не предполагайте, что все работает. Проверьте результат.
Из командной строки:
dig TXT s1._domainkey.example.com +short
В ответе должен быть открытый ключ. Пустой результат может означать не обновившийся кэш или неверное имя записи. В качестве грубого ориентира иногда называют до 48 часов, хотя часть изменений видна через минуты. Срок зависит от TTL, провайдера и правильности публикации; ожидание не исправит ошибку настройки.
Через тестовое письмо: Отправьте сообщение на Gmail и посмотрите исходные заголовки. Найдите:
Authentication-Results: mx.google.com;
dkim=pass header.i=@example.com header.s=s1
dkim=pass подтверждает проверку этой подписи в тестовом письме. Дополнительно проверьте согласование и другие маршруты отправки. При dkim=fail или dkim=neutral изучите настройки и типичные ошибки ниже.
Синтаксис записи DKIM
При создании DKIM важно понимать отдельные теги. Вот пример структуры:
v=DKIM1; k=rsa; t=s; p=MIIBIjANBgkqhkiG9w0BAQE...
| Тег | Обязателен | Значение |
|---|---|---|
v=DKIM1 | Да | Версия, должна быть DKIM1. |
k=rsa | Нет | Тип ключа. RSA используется по умолчанию и широко распространен. Ed25519 тоже стандартизирован; проверьте поддержку отправителем и получателем. |
p= | Да | Открытый ключ в Base64. Пустой p= отзывает ключ. |
t=s | Нет | Требует совпадения домена идентичности DKIM i= с доменом подписи d=, не разрешая его поддомены. Не задает согласование From в DMARC. |
t=y | Нет | Тестовый флаг. RFC предусматривает не менять обработку сообщений из-за неуспешного теста DKIM. Это не гарантия приема; после проверки уберите флаг. |
Типичные ошибки при создании DKIM
При первой настройке команды часто повторяют одни и те же ошибки.
1. Переносы строк в открытом ключе. Частая проблема при копировании из PEM. Вставленные переносы в DNS могут повредить значение. Удалите переводы строк и пробельные символы из данных Base64.
2. Неверный селектор в DNS. Ключ создан для s1, но сервер настроен на default. Получатель ищет default._domainkey.example.com и не находит ключ. Селектор DNS должен точно совпадать с селектором подписи.
3. Несколько записей под одним селектором. В отличие от SPF с единственной записью на домен, DKIM допускает разные селекторы. Но для каждого нужен однозначный ключ. Две TXT-записи для s1._domainkey могут нарушить проверку; нельзя рассчитывать, что получатель выберет нужную.
4. Подпись не включена. DNS публикует только открытый ключ. Сервер все еще должен подписывать исходящую почту закрытым. Без подписи запись не используется.
5. Ключи длиной 1024 бита. Они могут технически работать, но дают меньший запас стойкости. Рекомендации Google для отправителей советуют по возможности 2048 бит. Создайте новую пару с новым селектором и обновите сервер. Отзывайте старый ключ пустым p= только после того, как ранее подписанным сообщениям он больше не нужен.
DKIM, SPF и DMARC: общая система
DKIM является частью трехкомпонентной схемы аутентификации.
SPF проверяет, разрешена ли отправляющая IP для проверяемого домена. При пересылке SPF может не пройти из-за смены IP. Начните с руководства по настройке SPF и прочитайте как SPF работает для почты, чтобы разобраться в лимите 10 элементов, обращающихся к DNS, и других ограничениях.
DKIM может сохраняться при пересылке, поскольку подпись связана с содержимым, а не с IP. Для этого подписанные данные должны остаться достаточно неизменными. Именно поэтому DKIM дополняет SPF.
DMARC связывает их с видимым From. Если ни один метод не прошел с нужным согласованием, политика предусматривает наблюдение, карантин или отклонение; итоговое решение принимает получатель. Хотя бы SPF или DKIM должен пройти и быть согласован с From.
Возможная цель: успешные и согласованные SPF и DKIM, затем после проверки легитимных маршрутов политика DMARC p=reject. Это помогает ограничить подделку домена, но не гарантирует хорошую репутацию домена или попадание во входящие.
Для компании эта схема является основой безопасной работы с почтой, но не заменяет другие меры защиты.
Как TrekMail может помочь с DKIM
Для одного домена ручная настройка вполне практична. При множестве доменов управление селекторами, ротация и поиск ошибок становятся сложнее. Подходящая автоматизация и понятная ответственность помогают снизить нагрузку.
TrekMail описывает мастер SPF/DKIM/DMARC, который показывает DNS-настройки и проверяет состояние подключенных доменов. Генерация и управление ключами зависят от маршрута отправки. При внешнем SMTP используйте данные его поставщика. Проверки способны показать ошибки, но не предотвращают любую проблему доставки.
- Nano ($0): BYO SMTP, например Amazon SES или Mailgun. DKIM настраивается по инструкции фактического SMTP-поставщика. Описана работа без банковской карты; актуальные условия уточняйте.
- Starter ($3.50 в месяц): Описан управляемый SMTP с поддержкой DKIM. Уточните функции и автоматическую ротацию. В предложении указан 14-дневный бесплатный тест с обязательной картой.
- Pro ($10 в месяц): Описано несколько отправляющих доменов. Уточните независимые селекторы DKIM и управление ими. Указан 14-дневный тест.
- Agency ($23.25 в месяц): Описано управление 100+ клиентскими доменами из одной панели. Проверьте текущие лимиты, ротацию и мониторинг. Указан 14-дневный тест.
Дело не только в удобстве. Ошибка DKIM может оставаться незамеченной до ухудшения аутентификации или доставки. Автоматические проверки помогают обнаружить ее раньше, но не охватывают каждый сценарий.
Заключение
Для правильной настройки нужны подходящая пара ключей, желательно 2048 бит, TXT под правильным селектором, активная подпись и проверка результата. Сам ввод настроек одного домена может занять около десяти минут, но обновление DNS и устранение ошибок требуют дополнительного времени.
После DKIM настройте SPF и DMARC. Это улучшает аутентификацию и ограничивает некоторые способы подделки домена, но не обеспечивает полную защиту от всех рисков.
Если не хотите полностью вручную вести DNS, можно бесплатно попробовать TrekMail и воспользоваться мастером. Все равно проверяйте значения для вашего реального отправителя.
Поделиться статьёй