我的一个网站上的 TLS(SSL)证书昨天过期了。我获得了一个新的证书 - 并将其安装在网站上(在 Debian 9 上运行 nginx)。现在,当我从 Windows 或 Mac 访问该网站时,证书已正确处理,一切正常。
同时,我有一个服务运行在同一台服务器上并连接到同一站点。自从证书更新以来,此服务开始出现故障。尝试调试此问题后,我意识到安装证书的系统本身不信任颁发者。使用 wget 时,我收到此错误:
证书尚未获得已知颁发者
使用 curl 我收到此错误:
SSL证书问题:无法获取本地颁发者证书
这似乎表明系统上缺少 CA 证书。我尝试运行update-ca-certificates
和dpkg-reconfigure ca-certificates
。两个过程都成功完成,但问题仍然存在。
以下是 Mac 上 Chrome 的证书详细信息:
我尝试手动将根颁发者证书添加到 ca-certs 存储区update-ca-certificate
,但是却出现了证书重复的警告。
我该如何解决这个问题?禁用证书检查不是一个选项;通过 HTTP 访问网站也不行。
答案1
这看起来更像是您未正确安装新证书的问题,因此在 TLS 握手中仅提供服务器证书,而不提供中间证书。浏览器通常会成功尝试解决此类错误配置并自行填写缺失的链证书,而其他客户端则不会。请对照以下网址检查您的网站:SSL实验室并留意“链问题” - 然后确保正确地重新配置您的站点,以便您不再遇到这些链问题。