Попытка выяснить лучшую практику для реализации DKIM на единственном EC2, который будет иметь несколько, эластичный IPS.
# /etc/opendkim.conf
...
Mode sv
Canonicalization relaxed/simple
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts
KeyTable refile:/etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
SignatureAlgorithm rsa-sha256
...
# /etc/opendkim/KeyTable
default._domainkey.example.com example.com:hp-hv-1:/etc/opendkim/keys/default.private
default._domainkey.example.com example.com:hp-hv-2:/etc/opendkim/keys/default.private
# /etc/opendkim/SigningTable
*@example.com default._domainkey.example.com
Затем у меня есть две записи DNS:
hp-hv-1._domainkey.example.com TXT "v=DKIM1;k=rsa;p=default.txt_key_goes_here"
hp-hv-2._domainkey.example.com TXT "v=DKIM1;k=rsa;p=default.txt_key_goes_here"
Для обоих постфиксных экземпляров на том же экземпляре EC2 у каждого есть следующий $myhostname:
# postfixmulti instance #1
myhostname = hp-hv-1
# postfixmulti instance #2
myhostname = hp-hv-2
Оба постфиксных экземпляра находятся на том же экземпляре EC2, таким образом, они оба совместно используют тот же default.private/default.txt частная/с открытым ключом пара, таким образом, нет никакой потребности добавить больше строк к KeyTable и SigningTable. Насколько я могу сказать, я только должен добавить дополнительные строки к KeyTable и SigningTable, если я хочу реализовать несколько доменов (который я не делаю).
Но когда я тестирую свои настройки DKIM, я продолжаю получать 'передачу: нейтральные' ответы, говоря, что электронные письма не подписываются, но они, я вижу его в файле журнала:
# snippet from /var/log/maillog
Sep 25 15:15:31 service-a-4 opendkim[27420]: 5B4A3625F0: DKIM-Signature field added (s=hp-hv-1, d=example.com)
Что я пропускаю?
Версии:
CentOS 6.5
Postfix v2.6.6
Opendkim v2.9
Хорошо, я был явно сбит с толку, я все думал, что "s" в поле подписи DKIM должно было идентифицировать $ myhostname из конфигурации postfix, но на самом деле это не так. Прочитав больше о ротации ключей DKIM , я наконец понял, что «s» - это просто селектор для использования из KeyTable, SigningTable и DNS.
Проверьте это:
# /etc/opendkim/KeyTable
# Format: selector(1) domain:selector(2):/path/to/key
# selector(1) is used in the /etc/opendkim/SigningTable
# selector(2) is built into the DKIM signature for every email sent, which is used to lookup the DNS TXT entry: mail-1_r-1._domainkey.example.com
mail-1_r-1._domainkey.example.com example.com:mail-1_r-1:/etc/opendkim/keys/mail-1_r-1.private
А теперь если я хочу поменять ключи, я бы сделал это:
# /etc/opendkim/KeyTable
# Generate new private/public key pair, and rename accordingly
mail-1_r-1._domainkey.example.com example.com:mail-1_r-1:/etc/opendkim/keys/mail-1_r-1.private
mail-1_r-2._domainkey.example.com example.com:mail-1_r-2:/etc/opendkim/keys/mail-1_r-2.private
Затем в таблице подписи:
# /etc/opendkim/SigningTable
*@shouttag.com mail_r-1._domainkey.example.com
*@shouttag.com mail_r-2._domainkey.example.com
Тогда для записей DNS у вас будет следующее
mail_r-1.domainkey.example.com "v=DKIM1;k=rsa;p=mail_r-1.txt_key_goes_here"
mail_r-2.domainkey.example.com "v=DKIM1;k=rsa;p=mail_r-2.txt_key_goes_here"
Эти записи DNS используются для подтверждения того, что электронное письмо действительно отправлено с вашего домена (следовательно, письмо с указанием ключа домена). Затем примерно через 7 дней вы можете удалить mail_r-1.domainkey.example.com.