【问题标题】:SSL certificate error in cURLcURL 中的 SSL 证书错误
【发布时间】:2018-02-19 18:47:47
【问题描述】:

事实

我在 Win 10 笔记本电脑上安装了 Apache/2.4.27 (Win64) PHP/7.2.0beta3。我想实现 cURL。这是我的代码

$curl = curl_init(); 
curl_setopt($curl, CURLOPT_URL, 'https://www.youtube.com');
curl_exec($curl);

if (curl_errno ( $curl )) {
    echo curl_error ( $curl );
    curl_close ( $curl );
}

产生错误SSL certificate problem: unable to get local issuer certificate。所以我从https://curl.haxx.se/ca/cacert.pem 下载了证书。获取 cacert.pem 文件,将其放入 PHP 文件夹并像这样编辑 php.ini 文件 curl.cainfo = C:php/ext/cacert.pem

问题

现在我收到此错误error setting certificate verify locations: CAfile: C:php/ext/cacert.pem CApath: none。我用谷歌搜索,我发现的唯一解决方案是我必须从我想要 cURL 的站点下载 .crt 文件,并将其包含在我的 cURL 中,如 curl_setopt($curl, CURLOPT_CAINFO, "C:/wamp64/www/GIAG2.crt");

问题 1.1: 我不知道如何下载.crt 文件,所以我可以将它包含在我的代码中,就像上面的例子一样。

问题 1.2:这不是一个“通用”的解决方案,我想设置我的证书,这样我就不必为不同的站点下载不同的证书。

谢谢

【问题讨论】:

  • 我也遇到了SSL certificate problem: unable to get local issuer certificate 问题,和你一样,我得到了 cacert.pem 并在我的 php.ini 中链接到它。非常适合我。唯一的区别是我有 PHP 5.6。
  • 当前错误是说它不能设置证书位置。 C:php/ext/cacert.pem 应该是 C:/php/ext/cacert.pem 然后它至少应该找到它。之后,如果它有效,你能发布结果吗?您引用的当前 curl cacert.pem 中包含 GeoTrust Global CA 证书,因此它应该可以很好地验证 YouTube。
  • @drew010 即使与curl.cainfo = C:/php/cacert.pem 一起工作,细节是,我在C: 之后省略了/。我忘记了书中最古老的规则。感谢您的回答。你可以把它作为一个普通的发布,所以我可以投票给你并选择它作为正确的。

标签: php ssl curl https


【解决方案1】:

最简单的方法是跳过此检查。

...
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_exec($curl);

【讨论】:

  • 这是相当糟糕的建议,因为它会使连接不安全。
  • 我知道我也有这个选项,但我要求的是证书,而不是如何跳过它们。还是谢谢
【解决方案2】:

cURL 提供的当前 CA 证书提取包含 GeoTrust Global CA 证书颁发机构,该颁发机构签署了 Google 的 CA 证书,而后者又签署了 YouTube 的证书,因此您使用现有的文件应该没有问题。

根据最后一个错误,问题似乎是因为您在C: 之后缺少/。消息error setting certificate verify locations 表示它无法打开或读取curl.cainfo 指定的文件,因此根本找不到任何证书。

如果您将C:php/ext/cacert.pem 更改为C:/php/ext/cacert.pem,它应该能够正确读取 CA 文件,然后正确验证站点。

【讨论】:

    猜你喜欢
    • 2015-04-29
    • 1970-01-01
    • 2012-09-17
    • 2017-11-21
    • 1970-01-01
    • 2015-06-05
    • 2017-04-22
    • 2014-02-06
    • 2017-03-21
    相关资源
    最近更新 更多