Full Error
RequestException in CurlFactory.php line 187: cURL error 60: SSL certificate problem: unable to get local issuer certificate (see ht
\vendor\guzzlehttp\guzzle\src\Client.php
file is the worst advice, as manual changes made to vendor folder are overwritten if you run composer update
command.php.ini
file on web server. In case you are using Shared Hosting, it may not be possible to edit php.ini
file.When you don't have access to php.ini
file (e.g. Shared Hosting)
verify
key to GuzzleHttp\Client
constructor with its value as path to cacert.pem
file.With Laravel 5.7 and GuzzleHttp 6.0
// https://example.com/v1/current.json?key1=value1&key2=value2
$guzzleClient = new GuzzleHttp\Client([
'base_uri' => 'https://example.com',
'verify' => base_path('cacert.pem'),
]);
$response = $guzzleClient->get('v1/current.json', [
'query' => [
'key1' => 'value1',
'key2' => 'value2',
]
]);
$response = json_decode($response->getBody()->getContents(), true);
A quick solution but insecure (not recommended).
Using cURL:
Set CURLOPT_SSL_VERIYPEER to false
Using Guzzle: Set verify to false, for example
$client->request('GET', 'https://somewebsite.com', ['verify' => false]);