首页 > 心得分享 > PHP使用GuzzleHttp访问Https时报cURL error 60: SSL certificate problem错误的解决方案

PHP使用GuzzleHttp访问Https时报cURL error 60: SSL certificate problem错误的解决方案

最近尝试搞Composer开发,开发包的时候用到了GuzzleHttp。
在公司电脑访问一切正常的代码,回到家里始终无法成功。
家里笔记本是Windows10 + PHPStudy一键包 + php7.0。

GuzzleHttp入门文档获取错误的方法并不可用:

try {
    $client->request('GET', 'https://github.com/_abc_123_404');
} catch (ClientException $e) {
    echo $e->getRequest();
    echo $e->getResponse();
}

捕获GuzzleHttp错误应该使用如下代码:

// 发起请求
try {
    $response = $this->httpClient->post($url, $data);
} catch (RequestException $e) {
    $this->err_code = 401;
    $this->err_message = $e->getMessage();
    return false;
}

得到错误代码如下:

cURL error 60: SSL certificate problem: unable to get local issuer certificate (see https://curl.haxx.se/libcurl/c/libcurl-errors.html)

大致意思是无法获取到本地的根证书进行验证。
外网找到如下解决方案
https://stackoverflow.com/questions/29822686/curl-error-60-ssl-certificate-unable-to-get-local-issuer-certificate

整理下来大概是这样的:

  1. 下载最新的根证书文件:https://curl.haxx.se/ca/cacert.pem
  2. 修改php.ini文件,curl.cainfo = xxxcacert.pem 文件路径为刚才下载的文件路径
  3. 重启nginx即可生效.

上一篇: Linux下命令独占操作锁,解决同一个服务器上操作git时可能导致的冲突。

下一篇: 深圳电信开启 IPv6 并通过 DNSPod API 配置脚本实现 DDNS 动态解析

最近回复

标签