Прежде всего хочу сказать, что буду настраивать 1 ключ DKIM для всех сайтов на своем сервере, т.к. не хочу париться с генерацией ключей под каждый сайт.
Итак, поехали, давайте установим нужные нам утилиты для генерации ключей (можно попробовать без них).
aptitude install opendkim-tools openssl dkim-filter
Используя страницу или вручную создадим приватный и публичный ключи:
cd /etc/exim4
openssl genrsa -out dkim.key 1024
openssl rsa -in dkim.key -pubout > dkim.pub
chown Debian-exim:Debian-exim dkim.key
chmod 640 dkim.key
Если конфиги Exim не были разделены, то в файле /etc/exim4/exim4.conf.template перед:
remote_smtp:
добавляем:
DKIM_DOMAIN = ${lc:${domain:$h_from:}}
DKIM_PRIVATE_KEY = /etc/exim4/dkim.key
DKIM_SELECTOR = mail
mail - это имя префикса в DNS-записи, по которому будет выполняться проверка dkim. Например для сайта example.com имя DNS-записи будет mail._domainkey.example.com
Теперь смотрим, наш публичный ключ:
cat dkim.pub
и берем из него то, что находится между:
-----BEGIN PUBLIC KEY-----
СОДЕРЖИМОЕ_КЛЮЧА
-----END PUBLIC KEY-----
Одному из наших сайтов создаем DNS-запись с этим ключем:
тип: | TXT |
имя: | mail._domainkey.example.com |
значение: | v=DKIM1; k=rsa; p=СОДЕРЖИМОЕ_КЛЮЧА |
_domainkey - специальный субдомен зарезервированный для проверки ключей
Обратите внимание, что СОДЕРЖИМОЕ_КЛЮЧА не должно содержать пробелов и переносов строк (при копировании из терминала они могут добавиться).
Все, ребутаем наш почтовый сервис:
service exim4 restart
и ждем 24 часа для обновления DNS, и если что, проверяем появление нашей DNS-записи:
dig -t txt mail._domainkey.example.com
После чего проверяем правильность валидность DKIM (должны получить pass): 1 - 2 или просто отправьте письмо в Яндекс, где зайдя в письмо увидите:
Удачки господа.
Источники: 1 - 2 - 3 - 4 - 5 + советы от гугла
Комментарии