我已经在网上搜索了很长时间来找到我的问题的答案,所以我会发布这个问题并自己回答。
关于此问题不属于此处的以下评论的注释:
在 PHP (Drupal) 中,我对 Mandrill API 的所有 curl 请求突然停止工作。我花了很长时间调试问题的原因是什么,但我在这个过程中学到了很多东西。由于最终的调试非常简单并且可能会帮助其他人完成他们的过程,所以我仍然认为这个问题和解决方案属于 stackoverflow.com。
在 PHP 中调试后,我开始从命令行调试以查找问题,结果发现与在 PHP 中一样,在 PHP 之外,我所有的 https 请求都失败了,说网站的证书无效。
例如:
这会引发有关证书颁发者的 curl 错误。遗憾的是,目前我找不到实际的错误消息,但我希望我仍然可以帮助其他人解决这个问题。
我找到的所有帖子都是关于更新 Centos、安装根证书等。 所有这些都不起作用,所以我完全重新安装了机器,然后得到了同样的错误。
对我来说主要的问题是 PHP 中的 curl 请求不起作用,所以它属于 stackoverflow.com。我下面的解决方案(我最终是如何调试的)是在 PHP 之外的,但这仍然可以帮助其他 (PHP) 程序员解决问题。
最佳答案
最后我尝试了以下方法:
curl -I -v https://www.stackoverflow.com/
详细选项显示了我需要的信息,所以我发现所有证书都由 issuer: C=SK,O="ESET, spol. s r. o.",CN=ESET SSL Filter CA
现在 ESET 是我在 Windows 上的病毒扫描程序(由我们的 ICT 合作伙伴控制)。 事实证明(错误地)启用了一个选项,该选项随后控制所有 https 流量,包括来自虚拟机的流量。
所以长话短说: 使用 curl 的“-v”选项调试此问题以获得有值(value)的信息,包括根证书的状态等。
关于linux - 由于证书无效,来 self 的 linux vm (Centos) 的所有 https 请求均失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54074833/