证书没有已知的颁发者

Ale*_*s G 0 ssl debian ssl-certificate ssl-certificate-errors debian-stretch

我的一个站点上的 TLS (SSL) 证书昨天已过期。我获得了一个新的 - 并将其安装在网站上(在 nginx 下的 Debian 9 上运行)。现在,当我从 windows 或 mac 访问该站点时,证书得到正确处理并且一切正常。

同时,我有一项服务在同一台服务器上运行并连接到同一站点。自证书更新以来,此服务开始失败。尝试对此进行调试时,我意识到安装证书的系统本身不信任颁发者。使用 wget,我收到此错误:

证书没有已知的颁发者

使用 curl 我收到此错误:

SSL 证书问题:无法获取本地颁发者证书

这似乎指向系统上缺少 ca 证书。我试过跑步update-ca-certificatesdpkg-reconfigure ca-certificates. 两个过程都成功完成,但问题仍然存在。

以下是 Mac 上 Chrome 的证书详细信息:

在此处输入图片说明

我试图手动将根颁发者证书添加到 ca-certs 存储中update-ca-certificate,但是这导致了重复证书的警告。

我怎样才能解决这个问题?禁用证书检查不是一个选项;通过 HTTP 访问该站点也不是一种选择。

Ste*_*ich 5

这看起来更像是您未正确安装新证书的问题,因此 TLS 握手中仅提供服务器证书,而不提供中间证书。浏览器通常会成功地尝试解决此类错误配置并自行填写缺失的链证书,而其他客户端则不会。请根据SSLLabs检查您的站点并注意“链问题” - 然后确保正确重新配置您的站点,以便您不再遇到这些链问题。