Итак, у меня проблемы с тем, чтобы OpenDKIM подписывал мои сообщения, но я упираюсь в причину, по которой это может быть:
В Debian Jessie с Postfix и OpenDKIM.
Мой /etc/opendkim.conf
:
Syslog yes
SyslogSuccess Yes
LogWhy yes
UMask 002
Canonicalization relaxed/simple
Mode sv
SubDomains no
#ADSPAction continue
AutoRestart Yes
AutoRestartRate 10/1h
Background yes
DNSTimeout 5
SignatureAlgorithm rsa-sha256
UserID opendkim:opendkim
Socket inet:12301@localhost
KeyTable refile:/etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts
Мой /etc/opendkim/KeyTable
:
default._domainkey.example.com example.com:default:/etc/opendkim/keys/example.com/default.private
Мой /etc/opendkim/SigningTable
:
example.com default._domainkey.example.com
Пробовал следующий вариант SigningTable, но это отключило мой SMTP:
*@example.com default._domainkey.example.com
Раскомментируйте следующую строку в моем /etc/default/opendkim
:
SOCKET="inet:12345@localhost
В моем /etc/postfix/main/cf
:
# DKIM
milter_default_action = accept
milter_protocol = 6
smtpd_milters = inet:localhost:12345
non_smtpd_milters = inet:localhost:12345
Это что opendkim-testkey -d example.com -s default -vvv
возвращает:
opendkim-testkey: using default configfile /etc/opendkim.conf
opendkim-testkey: checking key 'default._domainkey.example.com'
opendkim-testkey: key not secure
opendkim-testkey: key OK
Кажется, в моих журналах нет ошибок, связанных с opendkim, но когда я пытаюсь проверить подпись, mail-tester.com сообщает об отсутствии подписи DKIM, check-auth@verifier.port25.com возвращает проверку DKIM: нет.
Любая помощь в определении того, что мне не хватает, будет очень признательна. Спасибо.
Проблемы, которые я вижу:
Ваше использование refile
Из документация:
Если строка начинается с «refile:», то предполагается, что оставшаяся часть строки определяет файл, содержащий набор шаблонов, по одному на строку, и связанные с ними значения. Шаблон принимается как начало строки до первого пробела, а часть после этого пробела принимается как значение, которое будет использоваться при сопоставлении этого шаблона. Шаблоны - это простые шаблоны с подстановочными знаками, соответствующие всему тексту, за исключением того, что символ звездочки («*») считается подстановочным знаком. Если значение содержит несколько записей, их следует разделять двоеточиями.
KeyTable не следует этому шаблону, поэтому ему не нужен refile
ключевое слово. Может, не больно, не знаю. Я не использую его там в своей конфигурации, и у меня он работает.
KeyTable /etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
Ваш KeyTable
Строки должны начинаться с домена, а не с записи domainkey:
example.com example.com:default:/etc/opendkim/keys/example.com/default.private
SigningTable
Таблица подписи должна сопоставлять адреса электронной почты с доменом. Должно получиться так:
*@example.com example.com
Здесь refile
ключевое слово необходимо.
Я не знаю о ExternalIgnoreList
и InternalHosts
, так как я ими не пользуюсь. В остальном конфигурация мне нравится.