dns - 使用长 dkim 密钥时出现 Opendkim 错误“密钥检索失败”
问题描述
我正在使用带有 opendkim 的 postfix 并看到很多以下错误:
opendkim[63]: 84D4C390048: key retrieval failed (s=selector1, d=hotmail.com):
'selector1._domainkey.hotmail.com' reply truncated
该错误发生在许多不同的域中,但总是在使用长 dkim 密钥(> 1024 位)时发生。我认为这是一个相当普遍的问题,但到目前为止找不到任何有用的东西。
这是我的 opendkim 配置的问题还是 opendkim 在这方面被破坏了?
解决方案
这个问题似乎是因为 opendkim 没有设置伪资源记录OPT UDPSize
,这表明它可以处理超过 512 字节的响应,如EDNS (wiki) RFC 2671所定义。
Opendkim(无 EDNS)
从 opendkim 请求的 tcpdump 可以看出:
28112+ TXT? selector1._domainkey.outlook.com. (50)
以及来自未绑定的响应:
28112| q: TXT? selector1._domainkey.outlook.com. 1/0/0 selector1._domainkey.outlook.com.
CNAME selector1._domainkey.outbound.protection.outlook.com. (105)
挖掘(EDNS)
来自dig的相同请求正确地表明较大的响应很好(OPT UDPsize=4096):
33350+ [1au] TXT? selector1._domainkey.outlook.com. ar: . OPT UDPsize=4096 (73)
并且 unbound 正确响应完整的 TXT 记录:
33350 q: TXT? selector1._domainkey.outlook.com. 2/0/1
selector1._domainkey.outlook.com. CNAME
selector1._domainkey.outbound.protection.outlook.com.,
selector1._domainkey.outbound.protection.outlook.com.
TXT "v=DKIM1;k=rsa;p=MIIBI[...]1913" ar: . OPT UDPsize=4096 (567)
为简洁起见,TXT 记录中的 DKIM 密钥被截断。
不幸的是,opendkim 项目似乎已经死了,所以这个问题不太可能得到修复。
推荐阅读
- swift - 字典中的随机元素
- mongodb - 如何将远程服务器中的 Mongo DB 连接到我的 Docker?
- sql - 如何在 Oracle APEX 交互式网格报表中维护正在运行的计数器
- c# - VSTO Outlook 插件开发
- git - 将更改合并到分支上,但不从目标分支中获取更改
- amazon-web-services - 为什么我的 POST 到 AWS API Gateway 失败了?
- ios - 如何防止文件应用程序中我的应用程序文件夹中的文件打开我的应用程序
- javascript - Chartjs 默认弃用警告
- php - 我如何使用教义来创建独特的关系?
- java - 使单个 Play Framework 2.6 操作处理路由而不考虑其 HTTP 方法的最佳方法