Domain-Name-System

使用 DNS 配置 DKIM 並在 VPS 上託管

  • August 14, 2021

我在我的 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==;

更新 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>)

你的 DKIM 選擇器很奇怪。

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

雖然這是完全有效的..

選擇器中允許使用句點,並且是組件分隔符。

$$ .. $$ 在 DNS 實現中,這可用於允許選擇器命名空間的一部分委託。

.. 因為DKIM 密鑰儲存在名為“_domainkey”的子域中,所以選擇器包含“domainkey”是不常見的。如果你真的想把它作為選擇器,你可以把鍵放在default.domainkey._domainkey.example.com- 我一開始沒有註意到,因為我確認了鍵default._domainkey.example.com

**建議:**從兩個這樣的標籤中去掉多餘的部分。 domainkey如果打算利用它與 DNS 上下文中點的含義的互動方式,則僅在選擇器中使用句點,否則它只是不必要的混淆來源。

使用實際編碼的名稱配置密鑰,以幫助記住此密鑰是什麼或稍後的某個時間點:rsa2021(這是我推薦類似over 的主要原因default)。根據您的郵件伺服器的配置方式,您可能希望刪除放錯位置的密鑰並生成一個新密鑰,這次從一開始就設置一個名稱 - 這是為了避免配置中的其他不匹配。

引用自:https://serverfault.com/questions/1073873