Defaults.Exposed › 設置 › DKIM
如何在 AWS Route 53 上設定 DKIM
在你的 Route 53 託管區域中發布郵件服務商的 DKIM 金鑰,讓你發出的郵件帶上無法被篡改的簽章。
這件事為什麼關係到你的業務
DKIM(網域金鑰識別郵件)會給你發出的每一封郵件加上一個看不見的數位簽章。收件方的郵件服務商用你發布在 DNS 中的公鑰來確認兩件事:這封郵件確實來自你的網域,而且在傳輸途中沒有被人改動過。
說得直白些:DKIM 就是給你的郵件蓋上一枚真偽防偽章。它讓假冒你更難得逞,也讓你真正發出的郵件更有機會進入對方收件匣、而不是被丟進垃圾郵件。和其他記錄一樣,它是免費的,設定一次即可。
重點:DKIM 分成兩半
DKIM 是所有記錄裡最講究「誰負責哪一步」的一個:
- 金鑰由你的郵件服務商產生。 Google Workspace、Microsoft 365、Amazon SES,或者其他替你傳送郵件的服務,會在它們自己的管理後台裡為你產生 DKIM 金鑰。這個值你無法自己編造——必須從它們那裡拿到準確的主機名稱和值。Route 53 不產生 DKIM 金鑰;它是你的 DNS 託管商,不是你的信箱服務商。
- 由 Route 53 來發布。 然後你把這個金鑰新增到你網域在 Route 53 的 DNS 裡(前提是 Route 53 負責管理你的 DNS——見下文)。
所以:在郵件平台裡產生,在 DNS 託管處發布。
第一步,確認 DNS 由 Route 53 管理
DKIM 記錄只有在 Route 53 負責解析你網域的 DNS 時才會生效。在 Route 53 主控台裡開啟 Hosted zones(託管區域),選中你的網域,記下那四個 NS(網域伺服器)值。它們必須和你註冊商處設定的網域伺服器一致。如果你的網域是透過 Route 53 註冊的,通常它們本就一致;如果是在別處註冊的——或者你為同一網域有不止一個託管區域——請仔細核對。如果目前生效的網域伺服器指向另一家服務商,請到那家去新增 DKIM 記錄;加在 Route 53 這裡不會生效。
從郵件服務商處獲取金鑰
在你郵件服務商的管理後台裡,找到 DKIM 或郵件身份驗證設定,產生/啟用一個金鑰。你拿到的東西取決於服務商,而這也決定了你在 Route 53 裡怎麼填:
- Google Workspace 給你一條 TXT 記錄:一個選擇器名稱(如
google._domainkey)和一個以v=DKIM1; k=rsa; p=開頭、後接一長串字元的值。 - Microsoft 365 給你兩條 CNAME 記錄,選擇器如
selector1._domainkey和selector2._domainkey,各自指向一個 Microsoft 主機。 - Amazon SES 給你三條 CNAME 記錄(它的「Easy DKIM」功能)。如果你的網域就在 Route 53,SES 往往可以主動提出替你自動新增這些記錄——不過你也可以手動新增。
把主機名稱和值一字不差地複製下來。
在 Route 53 上的分步操作
- 登入 AWS 主控台,開啟 Route 53。
- 在左側選單選擇 Hosted zones,然後點擊你網域的名稱。
- 點擊 Create record(建立記錄)。
- 如果出現帶路由選項的精靈,切換到簡單表單(找 Quick create record)。
- 在 Record name 一欄,只填選擇器部分——例如
google._domainkey或selector1._domainkey。不要在末尾加上你的網域;Route 53 會自動替你補上區域(它會在欄位旁顯示你的網域)。 - 把 Record type 設為 TXT 或 CNAME,與服務商給你的完全一致(Google = TXT;Microsoft 365 和 Amazon SES = CNAME)。
- 在 Value 一欄:
- 若是 TXT 金鑰,把那段長值用雙引號包起來貼上:
"v=DKIM1; k=rsa; p=..."。 - 若是 CNAME,貼上服務商給你的目標主機,不加引號(例如
selector1-yourdomain._domainkey.yourdomain.onmicrosoft.com)。
- 若是 TXT 金鑰,把那段長值用雙引號包起來貼上:
- TTL 保持預設。
- 點擊 Create records。每一條記錄都要重複操作(Microsoft 365 需要兩條;Amazon SES 需要三條)。
Route 53 上人們常踩的坑
- TXT 金鑰需要雙引號;CNAME 不需要。 這一點讓人反覆栽跟頭。TXT 形式的 DKIM 值要帶引號填進去,寫成
"v=DKIM1; ... p=..."。CNAME 值則只是純目標主機,不加引號。把兩者搞混會讓記錄失效。 - 不要把完整網域填進 Record name。 如果服務商的說明顯示的是
selector1._domainkey.yourdomain.com,在 Route 53 裡你只填selector1._domainkey——其餘部分系統會替你補上。再次帶上網域會產生一個出錯的主機名稱selector1._domainkey.yourdomain.com.yourdomain.com。 - 整段金鑰都要貼上——它很長。 TXT 形式的 DKIM 公鑰有數百個字元。務必確認沒有被截斷,複製貼上時也沒有混進多餘的空格或換行。
- 服務商要求的每一條記錄都要加上。 Microsoft 365 只發布兩條 CNAME 中的一條不會驗證通過;Amazon SES 三條都得有。少加幾條會讓 DKIM 悄無聲息地失敗。
- TXT 還是 CNAME——以服務商為準。 別把 CNAME 改成 TXT,也別反過來。用它們指定的類型。
- 對的託管區域,對的帳戶。 有多個區域或多個 AWS 帳戶時,很容易改錯對象。務必確認該區域的四個 NS 值和你目前生效的網域伺服器一致。
- 給它一點時間。 DNS 改動可能需要幾分鐘到一兩個小時才能傳播開,之後 DKIM 才開始驗證通過。
驗證是否生效
儲存之後,留出一點生效時間,再用本站的免費檢測跑一下。它會用大白話告訴你:你的 DKIM 記錄是否已發布、是否能被讀取到。
完成了? 免費檢查您的網域 以確認設置已生效——並查看您在全部 34 項檢查中的完整評級。