因此,我在使用 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 签名,[电子邮件保护]返回 DKIM 检查:无。
任何能帮助我指出我遗漏的内容的帮助都将不胜感激。谢谢。
答案1
我看到的问题:
您对
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
签名表
签名表应将电子邮件地址映射到域。它应该如下所示:
*@example.com example.com
这里
refile
需要关键字。
我不知道ExternalIgnoreList
和InternalHosts
,因为我不使用它们。其余配置对我来说看起来不错。