【问题标题】:CURL: SSL certificate fails, verify that the CA cert is OKCURL:SSL 证书失败,验证 CA 证书是否正常
【发布时间】:2013-09-13 04:17:02
【问题描述】:

我在 Windows 机器上运行本地 XAMPP 服务器。

我正在尝试从该服务器通过 CURL 连接到 SSL 加密页面。

我确实遇到了以下错误:

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

我意识到我可以简单地通过使用...来禁用 SSL 验证

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

..但我真的不想这样做,这就是使用 SSL 的意义所在。

我在这里看到了几个答案,指向将 CURL 选项“CURLOPT_CAINFO”设置为可以在此处获取的 .pem 文件:http://curl.haxx.se/ca/cacert.pem

curl_setopt($ch, CURLOPT_CAINFO, 'C:\xampp\cacert.pem' );

我确实将文件放在给定文件夹中,并在运行 curl_exec 之前运行上述命令。但是我仍然遇到和以前一样的错误。

我也尝试从我尝试连接的站点下载证书,但错误消息仍然相同。

PHP 可以访问 .pem 文件,例如使用 file_get_contents,因此看起来不是文件访问/权限问题。

此问题持续存在的原因可能是什么?

我正在跑步:

  • PHP 版本:5.2.9
  • cURL 信息:libcurl/7.16.0 OpenSSL/0.9.8i zlib/1.2.3

【问题讨论】:

  • 远程服务器是否配置了链接到有效 CA 的 SSL 证书(在浏览器上打开时显示绿色挂锁?)

标签: php curl ssl https


【解决方案1】:

反应迟缓,但我遇到了同样的问题,我修复它的方法是升级到 php 5.3。我没有看到任何明确表示“5.2 没有进行正确的证书验证”的内容,但是您可以通过使用 CURLOPT_CAINFO 获得一切权利。升级到 5.3 就可以了。

【讨论】:

    猜你喜欢
    • 2015-01-29
    • 2019-01-26
    • 2014-10-21
    • 1970-01-01
    • 2012-03-15
    • 1970-01-01
    • 2011-06-12
    • 2015-06-30
    • 2022-01-15
    相关资源
    最近更新 更多