PHP cURL Windows 上的 SSL 错误



我在使用Windows的PHP和cURL上遇到了一个奇怪的问题。

如果对 https 资源进行了 cURL 调用。一切都很顺利,直到今天早上。现在 cURL 在请求 URL 时会引发此错误:

SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

我已经阅读了有关 .pem 文件或禁用主机验证的信息。但我不想使用它们中的任何一个,因为我想知道是什么导致了问题。

直到今天,cURL 如何验证 URL?它是否使用某些系统 CA 信息?在最后一天,我没有对PHP或cURL进行任何更新。

很可能是

服务器的证书已过期,或者已被自签名证书、您不信任的 CA 颁发的证书或颁发给错误使用者的证书替换。

无论问题是什么,它都是服务器端的,与您的代码无关 - 您应该联系操作您正在使用的服务的人员并告知他们问题。

您可以在浏览器中访问 URL 以轻松检查证书 - 浏览器很可能会为您提供一条很好的人类可读消息,告诉您问题到底是什么,因为它也无法验证证书。

一旦您联系了服务提供商以验证他们的证书确实有问题,并且这不是有人试图诱骗您使用错误的服务器的情况(毕竟,这是SSL的主要目的之一),您可以跳过服务器证书的验证作为临时修复。

添加以下内容:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

我想必须更改服务器设置

最新更新