Windows上的PHP cURL SSL错误

时间:2012-05-14 08:22:49

标签: php windows ssl curl

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

如果对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如何验证网址?它是否使用某些系统CA信息? 我在最后一天没有对PHP或cURL做过任何更新。

2 个答案:

答案 0 :(得分:1)

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

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

您可以在浏览器中访问该URL以轻松检查证书 - 浏览器很可能会为您提供一个很好的人类可读消息,告诉您具体问题,因为它无法验证证书。

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

答案 1 :(得分:-2)

添加:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

我猜服务器设置必须改变