如何让 DKIM 进行身份验证?

如何让 DKIM 进行身份验证?

我在 RHEL4 上安装了 sednamil 和 dkim-milter。

DNS 和配置文件如下所示:

TXT 记录:mail._domainkey.MYDOMAIN.com IN TXT “v=DKIM1; g=*; k=rsa; t=y; p=....snip...TRM3w7CuYnQIDAQAB”

TXT记录:

_adsp._domainkey.MYDOMAIN.com. IN TXT "dkim=unknown"

/etc/dkim.conf

Canonicalization simple
Domain MYDOMAIN.com,MY2ndDOMAIN.com
KeyFile /var/db/dkim/mail.key.pem
MTA MSA
Selector mail
Socket inet:8891@localhost
SignatureAlgorithm rsa-sha256
Syslog Yes
Userid dkim
X-Header Yes
Mode sv
InternalHosts /etc/dkim-internal-hosts

/etc/dkim-内部主机

MYDOMAIN.com
MY2ndDOMAIN.com
127.0.0.1

现在,当我发送一封电子邮件进行测试时,虽然出现了密钥,但我在标题中看不到有关 DKIM 经过身份验证的任何内容:

X-DKIM: Sendmail DKIM Filter v2.8.3 MYDOMAIN.com o7FLH1Wa032083
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=MYDOMAIN.com; s=mail;
t=/XKdLCPjaYaY=;
h=Message-ID:Date:Subject:From:To:MIME-Version:Content-Type:
 Content-Transfer-Encoding;
b=qetPkilXBdjnuqiKIyvAwsvTvJfAnq5urdgp/i7p/uLJ8DB+svy9A8C6CPmcfELsJ
 hDid5k2AN5JD+wM2INmUIgjeAa/IwpGTbuMloj0Wioh4njqIfbATJqOhuqxTjic

如果我输入:

# host -t txt mail._domainkey.MYDOMAIN.com

我得到:

Host mail._domainkey.MYDOMAIN.com not found: 3(NXDOMAIN)

我可能错过了什么?

答案1

您的 DNS 设置似乎不正确。您需要输入最初设置 DKIM 时生成的公钥。示例 DKIM 记录如下:

$ dig +short TXT dkim._domainkey.twitter.com
"v=DKIM1\;" "g=*\;" "k=rsa\;" "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCrZ6zwKHLkoNpHNyPGwGd8wZoNZOk5buOf8wJwfkSZsNllZs4jTNFQLy" "6v4Ok9qd46NdeRZWnTAY+lmAAV1nfH6ulBjiRHsdymijqKy/VMZ9Njjdy/+FPnJSm3+tG9Id7zgLxacA1Yis/18V3TCfvJrHAR/a77Dxd65c96UvqP3QIDAQAB"

p= 后面的所有内容都是公钥。只需将其全部粘贴在一行上即可。_domainkey 之前的值称为您的选择器。在上面的 Twitter 示例中,它们的选择器是德金。从您的/etc/dkim.conf文件中可以看出,您的选择器被简单地称为mail。因此您的 DNS 记录应该是:

mail._domainkey.MYDOMAIN.com. IN TXT "v=DKIM1; k=rsa; t=s; p=<yourpublickey>"

一旦设置完成并且记录传播后,您应该在运行以下命令时获得完整的记录:

$ dig +short TXT mail._domainkey.MYDOMAIN.com

希望这可以帮助。

相关内容