我设置了一个 DKIM 记录,其中的值超出了 255 个字符的长度限制,因此我不得不拆分它。但现在我发现在线检查器抱怨 p= 不是 base64 编码的。例如这个网站 -http://dkimcore.org/c/keycheck。以下是我在 DNS 中设置的方法:
mta._domainkey.domain.com. IN TXT "v=DKIM1; k=rsa p=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/" \ " xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxx"
在 p 值中,我使用了两种格式中的一种,据我所知,在使用较长的密钥时必须使用这些格式。所以如你所见,我有斜线
"xxxxxx/" \ "xxxxxx"
在那里分隔两个字符串。这也是我让 BIND 停止抱怨区域有语法错误并通过其验证的唯一方法。我尝试在那里运行所有内容而不使用引号,只使用斜线,但 BIND 抱怨。所以我继续使用空格 \ 空格格式。现在,使用在线检查器,它告诉我我的密钥“不好”,我的 p 值不是 base 64 编码的。我的问题是:
1)在线检查器抱怨是因为它看到记录分割但不能正确处理,还是我的密钥实际上有问题?
2) 我想知道,既然它说的是 base 64,它是否不喜欢值中的所有其他斜线?那些应该在那里吗?
3)在 BIND 中使用长密钥以及让在线工具使用长密钥的最佳做法是什么?
更新:这是我尝试在没有 xxxxx" \ "xxxxxxx" 的情况下一起运行记录时在服务器上收到的确切错误
dns_rdata_fromtext: db.file:70: syntax error
_default/zonename/IN: syntax error
zone zonemane/IN: loading from master file zonefile failed: syntax error
zone zonename/IN: not loaded due to errors.
答案1
256 长度只需要在 SPF 检查中分解为多个字符串。DKIM 需要为 512 或以下,这电子邮件测试器将验证您的 DKIM 的长度,但我认为您应该将其重新组合起来。如果您有 2048 DKIM 密钥,那就没问题了。我只看到使用 4096 及以上长度时出现问题。但我也看到很多 4096 长度适合 512。