我正在建立一个基于 exim4 的邮件系统。该系统实现了 DKIM 签名和检查(除其他外)。签名似乎没有问题,但检查不起作用,exim4 抱怨我的 TXT 记录的语法,其中包含我的 dkim 公钥:
2014-02-02 22:37:31 1WA5fP-0004Y4-E2 DKIM: d=middle.earth s=a9d04665528b593d263a6e5256648c99 c=relaxed/relaxed a=rsa-sha256 [invalid - syntax error in public key record]
Run Code Online (Sandbox Code Playgroud)
我正在使用 2048 位长的 RSA 密钥在邮件中继级别对我的邮件进行签名(这可以正常工作,并且我确实在通过此服务器中继的邮件中有 DKIM 标头)。问题似乎在于绑定(我用于该区域的 DNS 服务器)不支持区域文件中长度超过 255 个字符的记录。所以我选择按照如下所示分割记录,并如非常值得信赖的网站 zytrax.com 中所述:
...
a9d04665528b593d263a6e5256648c99._domainkey IN 1800 TXT ("k=rsa,p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz2/ZfhxSI/A"
"bqgh0amM8ylrlosirWeKShUhq7fg12aYmRwOqq9hIzO0Fcz1BzfgHVu6HU++rC5"
"QoUK0JQK/nk4jwkDgvG2di2ZYmAvEbY/VeiK1x/TG0p1Iczr2k6Bj0gEAb/YGD2"
"YbwrwAi4bDXwoPsYuuNn9TB3jjyWKu/dvOsqhff1/4Wc+FkOi0ClvgrXiklN28X"
"TLjyjSyU794ntIoegXxrfwcwkhfPMvuqcnhfIC0Z8L71M4WR4SoHyNHVfBtNlUv"
"VNROiXlMxtxnNQvfViSwz6LC8bYIxeAba3hSXPTChKu3qZtfR0o3jFwEWAfLQdg"
"Ixler0jMEoAyJmfQIDAQAB")
Run Code Online (Sandbox Code Playgroud)
完整的区域文件可以在这里找到:http : //pastebin.com/GDE5XA2M
使用该配置 exim 会抱怨上述错误。如果我尝试手动解析我的 dkim 记录,我会得到:
;; ANSWER SECTION:
a9d04665528b593d263a6e5256648c99._domainkey.middle.earth. 1800 IN TXT "k=rsa,p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz2/ZfhxSI/A" "bqgh0amM8ylrlosirWeKShUhq7fg12aYmRwOqq9hIzO0Fcz1BzfgHVu6HU++rC5" "QoUK0JQK/nk4jwkDgvG2di2ZYmAvEbY/VeiK1x/TG0p1Iczr2k6Bj0gEAb/YGD2" "YbwrwAi4bDXwoPsYuuNn9TB3jjyWKu/dvOsqhff1/4Wc+FkOi0ClvgrXiklN28X" "TLjyjSyU794ntIoegXxrfwcwkhfPMvuqcnhfIC0Z8L71M4WR4SoHyNHVfBtNlUv" "VNROiXlMxtxnNQvfViSwz6LC8bYIxeAba3hSXPTChKu3qZtfR0o3jFwEWAfLQdg" "Ixler0jMEoAyJmfQIDAQAB"
Run Code Online (Sandbox Code Playgroud)
这对我来说看起来不太正确,我可以想象 exim 会因为这样的输出而丢失。但是,我不能 100% 确定对于这么长的 DNS …
我有一个应用程序,它已在 looooong 前分发。该应用程序通过客户端证书身份验证为客户端提供 https 接口。到应用程序发布时,提供 1024 位密钥长度证书可能没问题。尽管我们总是宣传客户用他们自己的 PKI 更新默认证书,但他们中的大多数只是使用默认证书,所以我有数千个这样运行的实例。现在我需要编写一个客户端(在 python 中)来查询该应用程序。该客户端将在更现代的 linux 发行版上运行,其中库和客户端应用程序是针对 openssl 1.1.1a 编译的。因此,在尝试使用弱默认客户端证书访问 https 接口时,我总是收到以下错误:OpenSSL 错误:
140AB18F:SSL routines:SSL_CTX_use_certificate:ee key too small
Run Code Online (Sandbox Code Playgroud)
在较旧的发行版(使用较旧的 openssl)上运行相同的代码或使用针对 gnutls 编译的应用程序可以正常工作。
几个问题: