cURL错误60:在laravel 5.4.36中使用枪口发送get请求时SSL证书问题

时间:2018-09-05 01:01:41

标签: php laravel ssl curl guzzle

我正在Windows 7中通过MAMP运行Laravel 5.4.36,我正在尝试使用guzzle 6.0使用以下代码将get请求发送到api:

document.querySelectorAll(".class1, .class2, class3");

运行此命令时,我收到cURL错误60:SSL证书问题:无法获取本地颁发者证书(请参阅http://curl.haxx.se/libcurl/c/libcurl-errors.html),我经历了无数stackoverflow帖子,并尝试了所有解决方案,包括更改curl.cainfo和opensll php.ini文件中的路径。最后看一下文档,我找到了这个解决方案:

const nodeList = document.querySelectorAll(".class1, .class2, class3");

nodeList.forEach((el)=>{ el.style.transitionDuration = '5s' })

这很好用,直到我插入一个php查询,这样我才能通过以下代码与api进行交互:

$client = new Client();

        $res = $client->request('GET', "https://api.behance.net/v2/projects? 
       q=motorcycle&client_id=hU0hcPkrtXxTi0PH1qUB5jztXI1R7iLB");

        $data = $res->getBody();
        $data = json_decode($data);
        $filteredData = [];

这带来了相同的cURL错误消息,但我仍然找不到它。当我使用var_dump(openssl_get_cert_locations());我回来了:

rray(8){[“” default_cert_file“] =>字符串(25)” c:/usr/local/ssl/cert.pem“ [” default_cert_file_env“] =>字符串(13)” SSL_CERT_FILE“ [” default_cert_dir “] =>字符串(22)” c:/ usr / local / ssl / certs“ [”“ default_cert_dir_env”] =>字符串(12)“ SSL_CERT_DIR” [“ default_private_dir”] =>字符串(24)“ c:/ usr / local / ssl / private“ [” default_default_cert_area“] =>字符串(16)” c:/ usr / local / ssl“ [” ini_cafile“] =>字符串(0)”“ [” ini_capath“] =>字符串( 0)“”}

问题是我的计算机中不存在c:/usr/local/ssl/cert.pem。我不知道从这里去哪里,因为我已经精疲力尽,我对Laravel还是陌生的。我希望有人可以阐明这个问题...


已解决

我找到了解决问题的方法,以防其他人遇到相同的情况,这是对我有用的:

$client = new Client();

        $res = $client->request('GET', "https://api.behance.net/v2/projects? 
         q=motorcycle&client_id=hU0hcPkrtXxTi0PH1qUB5jztXI1R7iLB",
        ['verify' => 'C:\MAMP\cacert.pem']
        );

        $data = $res->getBody();
        $data = json_decode($data);
        $filteredData = [];

0 个答案:

没有答案