DKIM 错误:dkim=neutral (bad version) header.i=

GBC*_*GBC 6 postfix spam centos dkim

在过去的几个小时里,我一直在为在我的 Postfix/CentOS 5.3 服务器上设置 DKIM 而苦苦挣扎。

它最终发送并签署了电子邮件,但显然 Google 仍然不喜欢它。我得到的错误是:

dkim=neutral (bad version) header.i=@mydomain.com.au

来自谷歌的“显示原始”界面。

这是我的 DKIM 签名标头的样子:

v=1; a=rsa-sha1; c=简单/简单;d=mydomain.com.au; s=默认;t=1267326852;bh=0wHpkjkf7ZEiP2VZXAse+46PC1c=;h=日期:发件人:消息 ID:收件人:主题;b=IFBaqfXmFjEojWXI/WQk4OzqglNjBWYk3jlFC8sHLLRAcADj6ScX3bzd+No7zos6i KppG9ifwYmvrudgEF+n1VviBnel7vcVT6dg5cxOTu7y31kUApR50lgxEglxEgfpR50LgxEgxEglxEgxEgfpR50LgxmfpR50lxmfpR5lxmfxmfpgslxfxmfxmfg

非常感谢有关如何解决此问题的任何建议!

顺便说一句,如果有人感兴趣(基于本指南),这正是我在 CentOS 5.3 中为 postfix 安装 dkim-milter 的方法:

mkdir dkim-milter
cd dkim-milter

wget http://www.topdog-software.com/oss/dkim-milter/dkim-milter-2.8.3-1.x86_64.rpm
======S======
Newest version: http://www.topdog-software.com/oss/dkim-milter/
======E======

rpm -Uvh dkim-milter-2.8.3-1.x86_64.rpm
/usr/bin/dkim-genkey -r -d mydomain.com.au

======S======
add contents of default.txt to DNS as TXT
_ssp._domainkey TXT dkim=unknown
_adsp._domainkey TXT dkim=unknown
default._domainkey TXT v=DKIM1; g=*; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GWETBNiQKBgQC5KT1eN2lqCRQGDX+20I4liM2mktrtjWkV6mW9WX7q46cZAYgNrus53vgfl2z1Y/95mBv6Bx9WOS56OAVBQw62+ksXPT5cRUAUN9GkENPdOoPdpvrU1KdAMW5c3zmGOvEOa4jAlB4/wYTV5RkLq/1XLxXfTKNy58v+CKETLQS/eQIDAQAB
======E======

mv default.private default
mkdir /etc/mail/dkim/keys/mydomain.com.au
mv default /etc/mail/dkim/keys/mydomain.com.au
chmod 600 /etc/mail/dkim/keys/mydomain.com.au/default
chown dkim-milt.dkim-milt /etc/mail/dkim/keys/mydomain.com.au/default

vim /etc/dkim-filter.conf
======S======
ADSPDiscard             yes
ADSPNoSuchDomain        yes
AllowSHA1Only           no
AlwaysAddARHeader       no
AutoRestart             yes
AutoRestartRate         10/1h
BaseDirectory           /var/run/dkim-milter
Canonicalization        simple/simple
Domain                  mydomain.com.au #add all your domains here and seperate them with comma
ExternalIgnoreList      /etc/mail/dkim/trusted-hosts
InternalHosts           /etc/mail/dkim/trusted-hosts
KeyList                 /etc/mail/dkim/keylist
LocalADSP               /etc/mail/dkim/local-adsp-rules
Mode                    sv
MTA                     MSA
On-Default              reject
On-BadSignature         reject
On-DNSError             tempfail
On-InternalError        accept
On-NoSignature          accept
On-Security             discard
PidFile                 /var/run/dkim-milter/dkim-milter.pid
QueryCache              yes
RemoveOldSignatures     yes
Selector                default
SignatureAlgorithm      rsa-sha1
Socket                  inet:20209@localhost
Syslog                  yes
SyslogSuccess           yes
TemporaryDirectory      /var/tmp
UMask                   022
UserID                  dkim-milt:dkim-milt
X-Header                yes
======E======

vim /etc/mail/dkim/keylist
======S======
*@mydomain.com.au:mydomain.com.au:/etc/mail/dkim/keys/mydomain.com.au/default
======E======

vim /etc/postfix/main.cf
======S====== Add:
smtpd_milters = inet:localhost:20209
non_smtpd_milters = inet:localhost:20209
milter_protocol = 2
milter_default_action = accept
======E======

vim /etc/mail/dkim/trusted-hosts
======S======
localhost
127.0.0.1
======E======

/etc/mail/local-host-names
======S======
localhost
127.0.0.1
======E======

/sbin/chkconfig dkim-milter on
/etc/init.d/dkim-milter start
/etc/init.d/postfix restart
Run Code Online (Sandbox Code Playgroud)

GBC*_*GBC 6

解决方案:结果我错过了我的 DNS 主机自动将所有条目转换为小写(出于除了他们自己以外的任何人都不知道的原因)。这意味着“v=DKIM1”变成了“v=dkim1”,这是一个无效的版本。这也意味着它被 base64 哈希转换为全部小写,从而破坏了它。

现在与我的主人联系,让他们改变他们的系统。希望这可以帮助某人!