AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1171804
Accepted
E. K.
E. K.
Asked: 2025-01-28 18:00:30 +0800 CST2025-01-28 18:00:30 +0800 CST 2025-01-28 18:00:30 +0800 CST

什么原因导致所有传入邮件都出现“dkim=permerror”,但发出的邮件却可以正常签名和接收?

  • 772

OpenDKIM 检查每封来信的标题dkim=permerror中的Authentication-Results来信设置(!)可能的原因是什么?这包括如果我将邮件发送到由某个提供商管理的另一个邮箱dkim=pass而通过的邮件。所以我知道只有我的 OpenDKIM 认为这些电子邮件不知何故没有通过,并且它会影响来自各地的所有发件人。

我在互联网上很难找到permerror有关造成这些情况的不同原因的信息。

那么什么可能导致省略确切的错误原因?奇怪的是,没有添加括号,我有时在互联网上看到提到,例如permerror (no key),但我的 OpenDKIM 似乎出于某种原因没有这样做。

我使用的 OpenDKIM 配置相当简短:

PidFile   /var/run/opendkim/opendkim.pid

SignHeaders   From,Sender,To,CC,Subject,Message-Id,Date

OversignHeaders   From,Sender,To,CC,Subject,Message-Id,Date

AlwaysAddARHeader   yes

Mode   sv

UserID   opendkim

ExternalIgnoreList   <myemaildomain here>, localhost

InternalHosts   <myemaildomain here>

KeyTable   /etc/opendkim/KeyTable.txt

SigningTable   refile:/etc/opendkim/SigningTable.txt

我省略了密钥表和签名表文件,因为无论如何外发邮件都可以正常工作,问题仅在于检查其他人发送给我的内容。

虽然我对通用答案感兴趣,但这是我使用的特定 OpenDKIM 版本:

# opendkim -V
opendkim: OpenDKIM Filter v2.11.0
    Compiled with OpenSSL 3.3.2 3 Sep 2024
    SMFI_VERSION 0x1000001
    libmilter version 1.0.1
    Supported signing algorithms:
        rsa-sha1
        rsa-sha256
        ed25519-sha256
    Supported canonicalization algorithms:
        relaxed
        simple
    libopendkim 2.11.0:
email
  • 1 1 个回答
  • 109 Views

1 个回答

  • Voted
  1. Best Answer
    Esa Jokinen
    2025-01-29T19:27:52+08:002025-01-29T19:27:52+08:00

    此评论中提到了原因:

    在我看来,与实际时间相差 8 分钟似乎是导致这种大规模拒绝的原因。但这让我很纳闷为什么会这样,因为几分钟的时间肯定不会突然导致更大规模的证书过期问题

    过期的不是证书,而是签名。来自opendkim.conf(5):

    ClockDrift (整数)

    设置在确定签名是否过期或将来生成时应用的容差(以秒为单位)。默认值为300。

    八分钟的时间漂移​​肯定比默认值五分钟要多。

    此外,签名可以通过x=标签声明其​​过期时间,如RFC 6376, 3.5中所定义:

    x=签名过期时间(纯文本无符号十进制整数;推荐使用,默认无过期时间)。格式与标签中的格式相同t=,表示为绝对日期,而不是与签名时间戳之间的时间差。该值以十进制 ASCII 的无符号整数表示,对标签中的值有相同的约束t=。如果验证者的验证时间超过了过期时间,则签名可能会被视为无效。如果该时间可靠,则验证时间应为验证者的管理域首次收到消息的时间;否则,应使用当前时间。如果两者都存在,则x=标签的值必须大于t=标签的值。

    然而,这个问题的真正解决方案不是增加允许的时间ClockDrift,而是配置验证邮件服务器以保持其时钟及时,例如,使用网络时间协议(NTP)。

    • 2

相关问题

  • 如何绕过 ISP 的限制性电子邮件政策?

  • SharePoint 传入电子邮件出现“未知别名”错误

  • 电子邮件帐户的角色名称与人名

  • 如何在笔记本电脑上使用 Tobit David?[关闭]

  • 随行人员通过 VPN 连接到 Exchange 2007

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve