我可以在我的主域上添加 DKIM 和 SPF 记录吗?

我可以在我的主域上添加 DKIM 和 SPF 记录吗?

我的 Web 服务器托管在 Amazon EC2 的免费套餐中,例如 example.com。由于我只使用一个弹性 IP 地址,而且我不想为另一个地址付费,所以我考虑在我的 Web 服务器上设置 Postfix,而不是在 mail.example.com 上设置它(这可能是一个更好的主意)。

大多数文档都谈到将这些记录添加到子域,但我也可以将其放在主域上(即 example.com)。我目前将 SPF 设置为主域上的 TXT,并且它通过了 SPF 检查。我可以对 DKIM 执行相同操作吗?

我刚刚生成了一个密钥https://www.unlocktheinbox.com/dkimwizard/它显示了私钥和公钥,以及选择器记录和策略记录。

虽然我知道我需要将我的私钥(postfix)和公钥(在 dns txt/mx 记录中)放在哪里,但不确定我应该将我的 2 个生成记录(选择器和策略)添加到哪里。我可以将它们都添加为主域下的 TXT 记录,而不必创建子域(即 mail.example.com)吗?

您的选择记录:

rsa._domainkey.example.com IN TXT

"k=rsa;p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnfOc9CYLS2I2/mSaDbRoZyJzlHYrS5aSjU3U94FKDmGUkG7HqLUFWRx6TkZVQ5JpKoyTA25PUpBnzdu11945B66EbrZGAYb3YE7kCJ1BSNjaXajd4fzkFfYV06riJgWC83wBc9hoIoDzAZDNFV/HKstjy8Zd2H81HnvpVGnuKeAQsKIdIyazYwv85kHwh8tRm0si4I251VJ9dHByoMu+/e/s8ppBhvaH0Ss1YZr5B7q8PVeoy6V+l9JMPkKt+wsELTBBKVk7LLYdiis3bHXaYL0cfjPerqfwkyX2Hq2xdSUZ90zw7W6pvsoFDVe/1H45ZbqkLJ8klz8YLzwPAJj13wIDAQAB"

您的保单记录:

_domainkey.example.com IN TXT "o=~"

谢谢。

答案1

不可以。您必须完全按照所有文档和教程中所述操作,即

selectorname._domainkey.example.com. IN TXT "k=ra;P=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB...

这里_domainkey来自 DKIM 规范(RFC 6376, 7.5)并且selectorname是选择器(3.1) 用于将多个签名密钥彼此区分开来。虽然选择器是用户定义的,可以是任何内容,但它必须与s=签名中的标签中使用的相同:

DKIM-Signature a=rsa-sha1; q=dns; d=example.com; [email protected]; s=selectorname; ...

这将导致从DKIM 命名空间3.6.2.1), 哪个是子域名

所有 DKIM 密钥均存储在名为 的子域中_domainkey。给定一个 DKIM-Signature带有 标记d=example.com标记s= 的字段foo.bar,DNS 查询将针对foo.bar._domainkey.example.com

这只是以这种方式定义的,它与定义的 SPF 记录不同(RFC 7208,3) 成为放置在其所属所有者名称的 DNS 树中,而不是放置在所有者名称下的子域中


最初设计_domainkey.example.com. IN TXT "o=~"用于提供有关签署政策的信息DKIM 发件人签名政策互联网草案,其中o=~指定实体对部分邮件进行签名但不是全部邮件,而-和则!更为严格,.表示根本不发送邮件。

这实际上从未被使用过,所以你不需要 _domainkey.example.com IN TXT "o=~"一点儿也不。

对于现实生活中的替代品,o=你应该面向DMARC。如果没有 DMARC,就无法判断某个域是否使用 DKIM;您只能在存在 DKIM 时检查它是否通过,但它不包括没有签名标头的消息。

DMARC 策略允许发件人表明他们的邮件受到 SPF 和/或 DKIM 保护,并告诉接收者如果这两种身份验证方法均未通过该如何处理 - 例如,垃圾邮件或拒绝该邮件。

当实施 DMARC 时,您应该已经让 SPF 和 DKIM 同时工作。

相关内容