【问题标题】:PHP cURL error regarding SSL关于 SSL 的 PHP cURL 错误
【发布时间】:2014-06-14 15:38:36
【问题描述】:

当我尝试通过 HTTPS 连接到服务器时遇到的错误:

Curl error: error setting certificate verify locations: CAfile: cacert.pem CApath: /etc/ssl/certs

我的 php.ini 文件顶部有这一行:curl.cainfo=/etc/php5/apache2/cacert.pem,cacert.pem 文件存在并且我已将权限设置为 777,只是为了确保权限不是问题。 /etc/ssl/certs 也一样。

我的 PHP 代码是

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://google.com");
$res = curl_exec($ch);

if (curl_errno($ch)) {
    echo 'Curl error: ' . curl_error($ch);
}

curl_close($ch);

【问题讨论】:

  • 为什么要在 php.ini 中添加额外的行?
  • @MartinKonecny 我在某处读到 curl 需要该文件,您可以手动说出它的位置(当您需要通过 HTTPS/SLL 建立连接时),或者您可以在 ini 中添加该行.如果你不指定它,cURL 会抛出另一个错误,说它不知道 CAfile 在哪里......
  • 默认情况下 curl 应该能够找到您的操作系统提供的所有注册证书颁发机构的公钥信息。你试过没有那条线吗?

标签: php curl ssl


【解决方案1】:

问题似乎在于我的 PHP 设置已过时。我完全删除了 php_curl,然后再次安装它,这为我解决了这个问题。我意识到问题可能出在包已过时,因为在终端中运行 curl 效果很好。

【讨论】:

    猜你喜欢
    • 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
    相关资源
    最近更新 更多