【问题标题】:Opendkim error "key retrieval failed" when long dkim keys are used使用长 dkim 密钥时出现 Opendkim 错误“密钥检索失败”
【发布时间】:2019-07-03 17:29:45
【问题描述】:

我正在使用带有 opendkim 的 postfix 并看到很多以下错误:

opendkim[63]: 84D4C390048: key retrieval failed (s=selector1, d=hotmail.com):
'selector1._domainkey.hotmail.com' reply truncated

许多不同的域都会发生此错误,但总是在使用长 dkim 密钥(> 1024 位)时发生。我认为这是一个相当普遍的问题,但到目前为止找不到任何有用的东西。

这是我的 opendkim 配置的问题还是 opendkim 在这方面被破坏了?

【问题讨论】:

    标签: dns postfix-mta dkim unbound


    【解决方案1】:

    libopendkim 正在进行的 res_query() 调用似乎无法通过重新传输请求来处理截断。它在我的开发服务器上,所以这似乎是一个本地配置选项。 res_query() 似乎没有办法强制 TCP 模式,但它的手册页建议您可以在本地 /etc/resolv.conf 中强制 TCP 模式。

    如果做不到这一点,您也许可以通过链接到 OpenDKIM 支持的另一个解析器(例如 unbound)来解决此问题。

    【讨论】:

      【解决方案2】:

      这个问题似乎是因为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 项目似乎已经死了,所以这个问题不太可能得到修复。

      【讨论】:

        猜你喜欢
        • 2014-12-02
        • 2021-01-22
        • 1970-01-01
        • 2015-04-03
        • 1970-01-01
        • 2020-03-12
        • 1970-01-01
        • 1970-01-01
        • 2010-10-03
        相关资源
        最近更新 更多