0

我对使用 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 进行任何更新。

4

2 回答 2

1

服务器的证书很可能已过期,或已被自签名证书、由您不信任的 CA 颁发的证书或颁发给错误主体的证书替换。

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

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

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

于 2012-05-14T08:26:54.097 回答
-2

添加这个:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

我想必须更改服务器设置

于 2012-05-14T08:30:07.693 回答