我正在尝试设置 Web 密钥目录,但直接配置和高级配置均按照https://wiki.gnupg.org/WKDHosting失败。
测试设置时,每次都出现证书过期的错误。两个证书都是 ISRG Root X1 CA 颁发的 LetsEncrypt 证书。gpg -v --auto-key-locate clear,wkd,nodefault --locate-key [email protected]
我读这里这可能是由于 DST Root CA X3 过期而导致的问题。我尝试的 GnuPG 版本是 2.2.28 和 2.3.4。我还尝试使用 Thunderbird 进行发现,结果出现错误“无法读取公钥文件”。
这是否仍然是由于 LetsEncrypt CA 过期而导致的问题,还是我可能配置错误了其他东西?
Access-Control-Allow-Origin 标头和策略文件已到位,数据以八位字节流的形式发送。
不幸的是,我的网络托管服务提供商只使用 LetsEncrypt,而对于我的本地托管服务器,我也没有 LetsEncrypt 的替代方案 - 如果这是问题所在,是否有任何解决方法?升级我的本地配置不会有太大帮助,因为我希望我的密钥也能被其他使用较旧软件的各方发现。
答案1
我读这里这可能是由于 DST Root CA X3 过期而导致的问题。我尝试的 GnuPG 版本是 2.2.28 和 2.3.4。我还尝试使用 Thunderbird 进行发现,结果出现错误“无法读取公钥文件”。
您给出的链接表明问题可能不是出在特定的客户端应用程序(如 gpg 或 Thunderbird)本身。问题(可能)在于应用程序链接到旧版本的 TLS 库:
如果您的操作系统只安装了 IdenTrust“DST Root”CA,而没有安装 Let's Encrypt“ISRG Root”CA &ndahs; 或者同时安装了这两者,但您的 GnuPG 版本链接到不支持备用验证链的 TLS 库,那么它将拒绝服务器的 TLS 证书,认为其“已过期”,因为其根 CA 已过期。旧版本的 GnuTLS 和 OpenSSL 没有意识到这不是唯一的选择。
只要与 LetsEncrypt 签名端点通信的客户端足够老,无法处理这种情况,那么就不会,没有解决办法。LetsEncrypt 将继续使用具有此场景的认证,因为:
(Let's Encrypt 仍然将其作为主要链的原因是因为它恰好与非常旧的 Android 版本提供了更好的兼容性。)
这意味着
- 需要与受 LetsEncrypt 认证保护的 Web 密钥目录进行通信的客户端需要自行更新才能处理这种情况,或者
- 将 Web 密钥目录正在使用的证书更改为旧客户端可以处理而无需更新的证书。