调试 CA 证书问题 - DigiCert GlobalRoot CA

Mar*_*era 0 debian openssl ssl-certificate certificate-authority

有问题,顺便说一下,我的Linux机器检查证书链,我无法调试它

目前受到影响的两台主机,我已经测试了该问题

  • repo.fortinet.com(用于 apt/deb 的 debian/ubuntu 存储库)ssllabs 报告
  • code.gov.cz(我们当地的 gov gitlab 实例)ssllabs 报告

根据 SSLLabs 的说法,两者都有相同的问题(服务器的证书链不完整,等级上限为“B”)

我已验证 DigiCert GlobalRoot CA 已正确安装在我的/etc/ssl/certs(均使用dpkg-reconfigure ca-certificates和手动配置update-ca-certificates --fresh)中。我还验证了本地串行/指纹与远程匹配

但是,我无法从apt/连接到这些主机git,在这两种情况下都遇到相同的症状(证书验证失败:证书不受信任。证书颁发者未知。无法握手:证书验证出错。)。APT 显然不会下载 repo 文件,git 将无法下载存储库。

我试图进入根目录,使用openssl s_client -connect并且在这两种情况下 OpenSSL 都报告了问题 21(验证返回码:21(无法验证第一个证书)),下面列出了完整的命令运行

我也试图获得缺少的中间体,但这并不能解决问题。

是我这边的问题(我怀疑是)还是这两个服务器都配置错误,而我只是在我的发行版(Debian Buster/Bullseye)中达到了安全预防措施?

小智 5

如果 Qualys SSL 服务器测试的消息是证书链不完整,则这些系统配置错误。发送证书链时,您必须发送除根 CA 之外的每个证书。不需要发送根 CA 本身,因为客户端已经有了它,所以虽然发送它是允许的,但这样做只会浪费带宽。

这些服务器仅发送了最终服务器证书。虽然可以通过使用证书中的 AIA 信息提取正确的证书链,但 TLS 库不会这样做(因为它涉及进行额外的网络请求)。一些 Web 浏览器碰巧可以工作,因为它们实现了证书缓存,但这也不能保证在那里工作。您的系统在此处具有正常和正确的行为。

您应该将这些系统的错误配置通知给管理员,并要求他们解决问题。