使用 DNS 配置 DKIM 并在 VPS 上托管

Ada*_*dam 2 domain-name-system vps dkim

我在我的 VPS 上使用 Mail Enable,并将生成的 DKIM(参见屏幕截图 1)复制到我的 DNS。(是的,我已经重新启动了 VPS): 在此输入图像描述

现在我的 DNS 设置是在托管公司 A 上配置的,并指向我在公司 B 托管的 VPS: 在此输入图像描述

现在奇怪的是,当我尝试检查 DKIM 有效性时,dmarcanalyzer.com 说它不正确,而 mxtoolbox.com 显示它是正确的。

我从 Google(和其他电子邮件服务提供商)获得的 DKIM 报告显示fail了 dkim 节点。请参阅此处的完整报告: 在此输入图像描述

我通过以下方式发送电子邮件localhost(并且更愿意继续这样做),但我也想知道localhost特定域的 DKIM 是否可能发生冲突并导致此问题。

我已经与托管公司 A 联系,他们表示 DNS 设置是正确的,并且一切都已配置并按预期工作。我现在不知道还能在哪里配置我的 DKIM 设置。

附:我也在这里检查过:

更新1

通过 mail-tester.com,我得到您邮件的 DKIM 签名是:

v=1;
c=relaxed/relaxed;
h=mime-version:from:date:message-id:subject:to:content-type;
d=example.com;
s=default.domainkey;
a=rsa-sha256;
bh=9GbEYuoERz+rKK0duec8ZYNDPzF429KQdM3YJavh32U=;
b=YQxDCBHCx1n1aLE0uVyOb2QsT2wOnkFqziZcyZtdNsGtMwz2y7ItPpB1MMkL5VZJl8Jgtszh9DomKhBPQ50WwAmIi/ayrR8hq61h0I2zdBNOs9A2bTYSBd/H11iTXGOuc8FFS3GHj+ohh3E+r+V6gvi4NF5shQ041OEdeZNUigUDRRr0eRDUnrK2/jq5ERWNDcg3MCDZI7Kcgj75BDJKfxBioVesKTV3/iLLuoBiDdVRdjqdAQC0Izc7KXweYab0wAiWvsCKvzBAyh0ieYFYHR4Wy3RAsKNUAwJkOJLF2IzvIBJaeIU8KVqJHONJ+IV40l13EsMZQUINZhJG9hvbbw==;
Run Code Online (Sandbox Code Playgroud)

更新2

根据下面 @anx 的建议,我生成了一个新密钥rsa2021并将其添加到我的 DNS 中:

"v=DKIM1; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAum44LLMyisKD6mOwTaXQqNjYsI6bNBS4uzhA03RaifyRDmmIKUPNv1bGb3QGihdDFzKbL+aax6o3INZSFcf1o5rKr8+3a2gAf+p2daNlycFQFmsWK94h4Vtu6j0VZ5E7bElFI0NQ/MYBOVwUST6H5DOsygGK9uWm8zVSBk8QtknZlLCPJYjHYc8V3dejnYcNIjBDtPKCB20E0q0pzIm63Dn8Z78J9wSvsSGl4FLN/3Tr96RLxwhqu+tFN04OVpdmlKnM7IQ3pGFMSEXqUoucndPUqzaNgT/u8GtowBoz72UgpDzuxkiehvg7PK/FPC6Vj/jTwe9d3oj/ZMN2ujMWYQIDAQAB;"

然后我通过发送电子邮件smtp.example.com并在此处查看: http: //isnotspam.com

我仍然看到 DKIM 失败:

* 0.0 T_DKIM_INVALID DKIM-Signature header exists but is not valid
X-Spam-Status: Yes, hits=6.4 required=-20.0 tests=BAYES_99,BAYES_999,
DKIM_SIGNED,HTML_MESSAGE,HTML_MIME_NO_HTML_TAG,MIME_HTML_ONLY,MISSING_SUBJECT,
SPF_PASS,T_DKIM_INVALID autolearn=no autolearn_force=no version=3.4.0
Envelope-to: ins-b3zwrk2j@isnotspam.com
Delivery-date: Fri, 13 Aug 2021 09:07:46 +0000
Received: from vpsnr12.myisp.com ([12.12.12.12] helo=mail.domainA.com)
by localhost.localdomain with esmtp (Exim 4.84_2)
(envelope-from <info@example.com>)
Run Code Online (Sandbox Code Playgroud)

anx*_*anx 5

您的 DKIM 选择器很奇怪。

d=example.com;s=default.domainkey;

虽然这是完全有效的..

选择器中允许使用句点,并且句点是组件分隔符。[..] 在 DNS 实现中,这可用于允许选择器命名空间的一部分的委派。

.. 因为DKIM 密钥存储在名为“_domainkey”的子域中,所以选择器包含“domainkey”是不常见的。如果您确实希望将其作为选择器,则可以将密钥放在default.domainkey._domainkey.example.com- 我一开始没有注意到,因为我在 处确认了密钥default._domainkey.example.com

建议:删除两个此类标签中多余的部分。 domainkey如果打算利用它与 DNS 上下文中点的含义的交互方式,则只能在选择器中使用句点,否则它只是不必要的混乱来源。

配置一个密钥,其名称实际上编码了一些东西,有助于记住这个密钥是什么,或者在以后的某个时候:was(这是我推荐诸如rsa2021over之类的东西的主要原因default)。根据邮件服务器的配置方式,您可能需要删除放错位置的密钥并生成一个新密钥,这次从一开始就设置一个名称 - 这是为了避免配置中出现其他不匹配情况。