postfix + opendkim 未正确签名。如何调试这个?

Dea*_*ler 8 postfix dkim

编辑:我确实更进一步,但我搜索中的所有帖子都说权限错误或重新生成密钥,但我将其固定为 644 并且归 DKIM 所有,我一直在重新生成密钥,但它没有帮助。我现在最新的错误是这个

Apr 21 21:19:12 Sniffy opendkim[8729]: BB5BF3AA66: dkim_eom(): resource unavailable: d2i_PrivateKey_bio() failed
Apr 21 21:19:12 Sniffy postfix/cleanup[8627]: BB5BF3AA66: milter-reject: END-OF-MESSAGE from localhost[127.0.0.1]: 4.7.0 resource unavailable; from=<dean@abcs.com> to=<dean.hiller@gmail.com> proto=SMTP helo=<abcs.com>
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种简单的调试方法(不一定需要答案,但从 opendkim 获取日志的方法会很好)。

如果我停止 opendkim,我会看到 postfix 日志连接被拒绝,这很好。但是当我使用 opendkim 发送邮件时,我看不到任何日志。我什至将“LogWhy Yes”行也添加到我的 opendkim.conf 文件中,但仍然看不到那里的日志。

由于我看到 opendkim 在用户 opendkim 下运行,我将 /etc/opendkim/* 和 /etc/opendkim 和 /etc/opendkim.conf 的所有者全部更改为 opendkim 用户。

我在 ubuntu 上运行。我的 opendkim.conf 文件是

# Log to syslog
Syslog                  yes
# Required to use local socket with MTAs that access the socket as a non-
# privileged user (e.g. Postfix)
UMask                   002

# Sign for example.com with key in /etc/mail/dkim.key using
# selector '2007' (e.g. 2007._domainkey.example.com)
#Domain                 example.com
Domain                  sniffyapp.com
#KeyFile                /etc/mail/dkim.key
KeyFile                 /etc/opendkim/keys/sniffyapp.com/default.private
#Selector               2007
Selector                default

# Commonly-used options; the commented-out versions show the defaults.
#Canonicalization       simple
Mode                    sv
#SubDomains             no
#ADSPDiscard            no

Socket inet:8891:localhost
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts
LogWhy Yes
Run Code Online (Sandbox Code Playgroud)

我当然在 postfix 中将这些行添加到 main.cf

smtpd_milters         = inet:127.0.0.1:8891
non_smtpd_milters     = $smtpd_milters
milter_default_action = accept
Run Code Online (Sandbox Code Playgroud)

Hal*_*luk 6

以下用于设置规范化的行有时会有所帮助。至少它最近对我有用。

Canonicalization        relaxed/relaxed
Run Code Online (Sandbox Code Playgroud)