opendkim 失败 | 错误的 RSA 签名 | 验证失败未受保护的密钥

Mat*_*čák 6 vps postfix opendkim

我有运行 Ubuntu 14.04 的完全可管理的 VPS,它为多个域托管网站。最近我尝试添加 DKIM 签名以避免垃圾邮件过滤器。我遵循了ubuntu-postfix-dkim 教程,使用 KeyTable 和 SigningTable,如写得很好的帖子askubuntu.com 中所述。每个域都有自己的公钥和私钥以及 txt DNS 区域记录。

通过 check-auth@verifier.port25.com、sa-test@sendmail.net 或什至通过http://dkimvalidator.com/进行测试后,响应完全相同:
DKIM:失败(签名不验证)

邮件已签名且签名看起来正常,但未通过验证测试。我唯一想到的是消息在计算签名哈希后以某种方式被修改。我的问题是:

是否可以调试发送过程?检查 DKIM 签名的计算内容和时间会很棒。我在配置文件中尝试过OmitHeaders To,to,TO但奇怪的是To: value 仍然出现在h= param 中。

我用谷歌搜索了很多,但仍然没有运气。提前致谢。
dkimvalidator.com 的输出:

DKIM Signature

Message contains this DKIM Signature:
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=inhillz.com; s=mail;
    t=1429184641; bh=g3zLYH4xKxcPrHOD18z9YfpQcnk/GaJedfustWU5uGs=;
    h=Date:From:To:Subject;
    b=fccxI1j/+InWdupEY1/hAYCUeSAlTHo3tr/594sOqETs6kEzRlyXWZDLib1b1WqV0
    xN/wr0Io+OGTJOTChp+cJ/H/KrODt1mzGgDA/O/AKWUPEGKODgk9iO03/o6DpLB4bM
    t5GVSKdBQna7sYkQJM2mGtCNgswydgsgytb0J9QA=

Signature Information:
v= Version:         1
a= Algorithm:       rsa-sha256
c= Method:          relaxed/relaxed
d= Domain:          inhillz.com
s= Selector:        mail
q= Protocol:        
bh=                 g3zLYH4xKxcPrHOD18z9YfpQcnk/GaJedfustWU5uGs=
h= Signed Headers:  Date:From:To:Subject
b= Data:            fccxI1j/+InWdupEY1/hAYCUeSAlTHo3tr/594sOqETs6kEzRlyXWZDLib1b1WqV0
    xN/wr0Io+OGTJOTChp+cJ/H/KrODt1mzGgDA/O/AKWUPEGKODgk9iO03/o6DpLB4bM
    t5GVSKdBQna7sYkQJM2mGtCNgswydgsgytb0J9QA=
Public Key DNS Lookup

Building DNS Query for mail._domainkey.inhillz.com
Retrieved this publickey from DNS: v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCpLxuEApOG3ubulSygyEMAVsGHnBUDdYfCHJpGzMguNOCPSpQSdHxUFS+AGKwwyYTLs0X9kP7KUKLhY5TcxJgFPpSl6DOkkjs7Yd/njdg5o/DZe4Ey1hv+XqquEwGh7mqH3049ph2DUA7w3sm6gEgcydYTcyR5ykZ8nQMSIoeRKQIDAQAB
Validating Signature

result = fail
Details: bad RSA signature  
Run Code Online (Sandbox Code Playgroud)

编辑
我尝试生成新密钥,还更改了 DNS 记录并使用

opendkim-testkey -d inhillz.com -s mail -k mail.private -vvv
Run Code Online (Sandbox Code Playgroud)

输出是:

opendkim-testkey: using default configfile /etc/opendkim.conf
opendkim-testkey: key loaded from mail.private
opendkim-testkey: checking key 'mail._domainkey.inhillz.com'
opendkim-testkey: key not secure
opendkim-testkey: key OK
Run Code Online (Sandbox Code Playgroud)

通过 check-auth@verifier.port25.com 验证后仍然是同样的错误。

小智 1

更改 DNS 设置时,请确保更新 SOA 记录的序列号,即;2016092601; 序列号,其中 yyyymmddhhvv = 年月日时版本。如果序列号不更改,某些 DNS 将不会更新其缓存。

另外,请绝对确保 dkim 与您的 DNS 记录中的 txt 记录匹配:

dkim._domainKey TXT (“p=非常长的文本字符串”)