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 项检查中的完整评级。