为什么我收到致命错误:未捕获异常' GuzzleHttp \ Exception \ RequestException'消息' cURL错误60

时间:2015-12-14 10:00:24

标签: php ssl curl laravel-5

我在laravel做项目。我正在使用plivo api发送短信。为此我遵循了

中提到的所有步骤

https://www.plivo.com/docs/getting-started/send-a-single-sms/

但是当我尝试运行我的php文件时,我收到错误消息

  

"致命错误:未捕获的异常' GuzzleHttp \ Exception \ RequestException'消息' cURL错误60:SSL证书问题:证书链中的自签名证书(请参阅http://curl.haxx.se/libcurl/c/libcurl-errors.html)'在G:\ Xampp \ htdocs \ plivoTrial \ vendor \ guzzlehttp \ guzzle \ src \ Handler \ CurlFactory.php:187堆栈跟踪:#0 G:\ Xampp \ htdocs \ plivoTrial \ vendor \ guzzlehttp \ guzzle \ src \ Handler \ CurlFactory .php(150):GuzzleHttp \ Handler \ CurlFactory :: createRejection(Object(GuzzleHttp \ Handler \ EasyHandle),Array)#1 G:\ Xampp \ htdocs \ plivoTrial \ vendor \ guzzlehttp \ guzzle \ src \ Handler \ CurlFactory.php (103):GuzzleHttp \ Handler \ CurlFactory :: finishError(Object(GuzzleHttp \ Handler \ CurlHandler),Object(GuzzleHttp \ Handler \ EasyHandle),Object(GuzzleHttp \ Handler \ CurlFactory))#2 G:\ Xampp \ htdocs \ plivoTrial \ vendor \ guzzlehttp \ guzzle \ src \ Handler \ CurlHandler.php(43):GuzzleHttp \ Handler \ CurlFactory :: finish(Object(GuzzleHttp \ Handler \ CurlHandler),Object(GuzzleHttp \ Handler \ EasyHandle),Object(GuzzleHttp \ Handler) \ CurlFactory))#G G:\ Xampp \ htdocs \ plivoTria位于G:\ Xampp \ htdocs \ plivoTrial \ vendor \ guzzlehttp \ guzzle \ src \ Handler \ CurlFactory.php第187行"。

我的php文件看起来像,

<?php
require 'vendor/autoload.php';
use Plivo\RestAPI;

$auth_id = "xxxxxxxxxxxxx";
$auth_token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxx";

$p = new RestAPI($auth_id, $auth_token);

// Set message parameters
$params = array(
'src' => 'xxxxxxxxxxx', 
'dst' => '91xxxxxxxxxx', 
'text' => 'Hi, I am Amarja :)', 
'url' => 'http://localhost/untitled/sentsms.php', 
'method' => 'POST' 
);
// Send message
$response = $p->send_message($params);

echo "Response : ";
print_r ($response['response']);

echo "<br> Api ID : {$response['response']['api_id']} <br>";

echo "Message UUID : {$response['response']['message_uuid'][0]} <br>";

?>

我没有得到如何解决这个问题。请提前帮助和许多。

1 个答案:

答案 0 :(得分:1)

请勿停用SSL

相反,修复您的PHP安装

These directions在Windows上为我工作。

当您的CA根证书丢失或过期时,会出现此问题。由于目前 ALL Windows平台PHP安装程序在分发中包含CA根证书,因此在Windows上比在Linux上更常见。

以下是更新CA根证书的方法:

  1. Download CA根证书的最新副本。
  2. 将文件“cacert.pem”保存到您的计算机。例如 c:\ xampp \ php
  3. 将“cacert.pem”文件的位置从第2步添加到 php.ini 文件。
    php.ini 文件中搜索[curl],然后更新或添加以下行:
    curl.cainfo=c:\xampp\php\cacert.pem
  4. 重新启动您的网络服务器。
  5. Curl现在有一个有效的CA根证书捆绑包,可以验证远程服务器的SSL证书。

    如果您在Windows计算机上运行任何Google Cloud Platform PHP examples,则会收到以下cURL错误:CURLE_SSL_CACERT (60) - 无法使用已知的CA证书对对等证书进行身份验证。现在该错误应该是不言自明的,以及如何解决它。