opendkim-testkey 返回“无效的数据集类型”,而如果我指定域和选择器,我会得到“Key OK”

Mla*_*vic 4 dkim opendkim

我遇到的问题是 opendkim testkey 返回错误“无效的数据集类型”,除非我将域和选择器传递给命令。为什么会发生这种情况?详情如下:

没有域和选择器:

root@condor1796 /etc/opendkim # sudo -u opendkim opendkim-testkey -vvvv
opendkim-testkey: using default configfile /etc/opendkim.conf
opendkim-testkey: invalid data set type
root@condor1796 /etc/opendkim # 
Run Code Online (Sandbox Code Playgroud)

指定域和选择器:

root@condor1796 /etc/opendkim # sudo -u opendkim opendkim-testkey -vvvv -d numbeo.com -s mail
opendkim-testkey: using default configfile /etc/opendkim.conf
opendkim-testkey: checking key 'mail._domainkey.numbeo.com'
opendkim-testkey: key not secure
opendkim-testkey: key OK
Run Code Online (Sandbox Code Playgroud)

正如我在另一个线程中了解到的,关键的不安全输出是:

“密钥不安全”并不表示有错误。这是不使用 DNSSSEC 的预期结果。

这是我的配置文件:

root@condor1796 /etc/opendkim # cat /etc/opendkim.conf
OversignHeaders     From
TrustAnchorFile       /usr/share/dns/root.key

AutoRestart             Yes
AutoRestartRate         10/1h
UMask                   002
Syslog                  yes
SyslogSuccess           Yes
LogWhy                  Yes

Canonicalization        relaxed/simple

ExternalIgnoreList      refile:/etc/opendkim/TrustedHosts
InternalHosts           refile:/etc/opendkim/TrustedHosts
KeyTable                refile:/etc/opendkim/KeyTable
SigningTable            refile:/etc/opendkim/SigningTable

Mode                    sv
PidFile                 /var/run/opendkim/opendkim.pid
SignatureAlgorithm      rsa-sha256

UserID                  opendkim:opendkim

Socket                  inet:12301@localhost
Run Code Online (Sandbox Code Playgroud)

这些是参考文件:

root@condor1796 /etc # sudo -u opendkim cat /etc/opendkim/KeyTable
mail._domainkey.numbeo.com numbeo.com:mail:/etc/opendkim/keys/numbeo.com/mail.private
root@condor1796 /etc # sudo -u opendkim head -n 2 /etc/opendkim/keys/numbeo.com/mail.private
-----BEGIN RSA PRIVATE KEY-----
MIICXgIBAAKBgQDPqBmXSBbSXdmDIOqriDqI7/HJz1AqJNjK+Jqd0EQHEmXS5BHB
root@condor1796 /etc # sudo -u opendkim cat /etc/opendkim/SigningTable 
*@numbeo.com mail._domainkey.numbeo.com
Run Code Online (Sandbox Code Playgroud)

知道为什么如果我不指定域和选择器,我会收到 opendkim-testkey 错误吗?

Mla*_*vic 5

我已经解决了这个问题。该线程帮助:

OpenDKIM 未签署邮件

opendkim.conf 必须有这一行

KeyTable                /etc/opendkim/KeyTable
Run Code Online (Sandbox Code Playgroud)

(不带 refile:/ 前缀)

这现在有效:

root@condor1796 /etc # sudo -u opendkim opendkim-testkey -vvvv 
opendkim-testkey: using default configfile /etc/opendkim.conf
opendkim-testkey: record 0 for 'numbeo.com' retrieved
opendkim-testkey: checking key 'numbeo.com'
opendkim-testkey: key numbeo.com: OK
opendkim-testkey: key numbeo.com not secure
opendkim-testkey: 1 key checked; 1 pass, 0 fail
Run Code Online (Sandbox Code Playgroud)