【问题标题】:PHP cURL SSL error on windowsWindows上的PHP cURL SSL错误
【发布时间】:2012-05-14 08:22:49
【问题描述】:

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

【问题讨论】:

    标签: php windows ssl curl


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 感谢您再次指出这一点。我已经查看了证书的浏览器信息。它没有向我显示错误。但是确实(在第二次查看之后)证书没有经过验证......
    • 浏览器提示什么问题?可能只是您需要更新服务器的受信任根 CA 列表。
    • 嗯,这有点奇怪。有时它说证书已由 thawte 验证有时此字段留空(在 Firefox 中)我要询问服务器管理员,是否有更改或是否有任何问题
    【解决方案2】:

    添加这个:

    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    

    我猜服务器设置必须更改

    【讨论】:

    • 他明确表示I have read about ... disabling the verification of the host. But I don't want to ..., because I'm wondering what is causing the problem.
    猜你喜欢
    • 2013-02-03
    • 2018-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-17
    • 1970-01-01
    • 2010-11-19
    • 2020-02-09
    相关资源
    最近更新 更多