If you are on Windows using Xampp, I am stealing a better answer from here, would be helpful if Google shows you this question first.

  1. Download and extract for cacert.pem here (a clean file format/data)


  2. Put it in :


  3. Add this line to your php.ini

    curl.cainfo = "C:\xampp\php\extras\ssl\cacert.pem"

  4. restart your webserver/Apache

  • 99
Reply Report

Seeing I am using a local environment I can safely disable SSL, which i did using the following:

$guzzleClient = new \GuzzleHttp\Client(array( 'curl' => array( CURLOPT_SSL_VERIFYPEER => false, ), ));

Where $client is my Google_Client().

  • 31
Reply Report

I work with xamps nothing of the above did work for me

I tried this and it worked

  1. open vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.php

and change this


to this


it's a temporary solution if you updated this file the changes will lost

  • 9
Reply Report

for the essence of development and testing, You have two options to a quick fix

  1. Use
$client = new GuzzleHttp\Client();
$request = $client->request('GET',$url, ['verify' => false]); //where $url is your http address
  1. follow @Pham Huy Anh answer's above then do this
$client = new GuzzleHttp\Client();
$request = $client->request('GET',$url, ['verify' => 'C:\xampp\php\extras\ssl\cacert.pem']);

Hope it helps someone.

  • 1
Reply Report

PCI-DSS 3.1 requires all SSL to only TLS 1.2 so a lot of providers are simply turning everything but TLS 1.2 off. I ran into this type of issue where CURL saw the failure to downgrade handshakes as a failure to verify the SSL certificate. Try finding where your code is doing the CURL call and add this line (be sure to replace $ch with whatever CURL handle your code uses)

curl_setopt($ch, CURLOPT_SSLVERSION, 6);  // Force TLS 1.2
  • 0
Reply Report
    • is curl_init() a proper way? Setting the SSLVERSION to 6 doesn't solve the problem. Setting SSL_VERIFYPEER to false doesn't work either.
      • 2
    • There will be a line in your code using curl_init(); to initialize the CURL request. If setting TLS 1.2 doesn't work I'm not sure what else could be wrong.

Warm tip !!!

This article is reproduced from Stack Exchange / Stack Overflow, please click

Trending Tags

Related Questions