由于证书无效,来自我的 linux 虚拟机 (Centos) 的所有 https 请求均失败

All https requests from my linux vm (Centos) fail due to invalid certificate

我已经在网上搜索了很长时间以找到我的问题的答案,所以我会 post 这个问题并自己回答。

关于此问题不属于此处的评论的注释:

在 PHP (Drupal) 中,我对 Mandrill API 的所有 curl 请求突然停止工作。我花了很长时间调试问题的原因是什么,但我在这个过程中学到了很多东西。由于最终的调试非常简单并且可能会帮助其他人完成他们的过程,所以我仍然认为这个问题和解决方案属于whosebug.com。

在 PHP 中调试后,我开始从命令行调试以找到问题,结果发现与 PHP 中一样,在 PHP 之外,我所有的 https 请求都失败了, 说该网站的证书无效。

例如:

curl https://www.whosebug.com/

这会引发有关证书颁发者的 curl 错误。遗憾的是,目前我找不到实际的错误消息,但我希望我仍然可以帮助其他人解决这个问题。

我发现的所有 post 都是关于更新 Centos、安装根证书等。 所有这些都不起作用,所以我完全重新安装了机器,然后得到了同样的错误。

我的主要问题是 PHP 中的 curl 请求不起作用,因此属于 whosebug.com。我下面的解决方案(我最终是如何调试的)不在 PHP 范围内,但这可能仍然有助于其他 (PHP) 程序员解决问题。

最后我尝试了以下方法:

curl -I -v https://www.whosebug.com/

详细选项显示了我需要的信息,所以我发现所有证书都是由 issuer: C=SK,O="ESET, spol. s r. o.",CN=ESET SSL Filter CA

颁发的

现在 ESET 是我在 Windows 上的病毒扫描程序(由我们的 ICT 合作伙伴控制)。 事实证明(错误地)启用了一个选项,然后控制所有 https 流量,包括来自虚拟机的流量。

所以长话短说;博士: 使用 curl 的“-v”选项调试此问题以获得有价值的信息,包括根证书的状态等。