跳到主要内容
ecdsa.com
OpenDKIM (Authentication-Results); mailauth reports syntax errors as dkim=neutralDKIM

错误信息

dkim=permerror

也可能输出为

  • dkim=neutral (signature syntax error)

OpenDKIM 只写一个不带原因的 `dkim=permerror`(我们用缺少 `bh=`、带 `v=2`、带未知 `a=` 以及 `i=` 不在 `d=` 内的签名复现过)。mailauth 把语法问题报告为 `dkim=neutral`,并附上指明问题的注释;无法具体指明时则使用“signature syntax error”。

含义

DKIM 签名根本无法评估,重试也无济于事:`DKIM-Signature` 头的语法有误,或违反了 RFC 6376 的规则(缺少 `bh=` 或 `b=` 等必需标签、版本未知、算法不受支持、`i=` 身份不在 `d=` 域名之内、`From` 不在签名的头字段之列),或者公钥记录无法使用。RFC 8601 把这种情况称为永久错误。对 DMARC 来说,这不算通过。

原因

修复方法

  1. 1.

    列出签名的标签

    展开折叠的头字段,检查必需的标签及其取值;DKIM 调试器会完成这一步,并指出有问题的标签。

    bash
    # Show the DKIM-Signature as one line and list its tags
    awk '/^DKIM-Signature:/{p=1} p&&/^[^ \t]/&&!/^DKIM-Signature:/{p=0} p' message.eml | tr -d '\r\n\t' | tr ';' '\n'
    # required: v=1 a= b= bh= d= h= (containing "from") s=
  2. 2.

    使用标准的签名配置

    RSA-SHA256(可选择再加上 Ed25519);对 `From` 签名,并做超额签名(oversign);使用仍在维护的签名实现,而不是自定义代码。

    text
    # OpenDKIM signer: standard algorithm, From always signed
    SignatureAlgorithm  rsa-sha256
    OversignHeaders     From
    Canonicalization    relaxed/simple

相关错误

浏览完整的签名错误库