Runtime Configuration
The behaviour of these functions is affected by settings in php.ini.
Name | Default | Changeable | Changelog |
---|---|---|---|
curl.cainfo | NULL | PHP_INI_SYSTEM | Available since PHP 5.3.7. |
Here's a short explanation of the configuration directives.
-
curl.cainfo
string -
A default value for the
CURLOPT_CAINFO
option. This is required to be an absolute path.
Коментарии
cURL error 60: SSL certificate problem: unable to get local issuer certificate
This local development error comes when curl.cainfo variable is not set correctly.
I faced this issue in PHP Version 7.3.1
In order to fix the error, I downloaded cacert.pem from https://curl.haxx.se/docs/caextract.html
Set the following paths in php.ini
curl.cainfo="D:\wamp64\bin\php\php7.3.1\extras\ssl\cacert.pem"
openssl.cafile="D:\wamp64\bin\php\php7.3.1\extras\ssl\cacert.pem"
Even after adding the paths and restart Apache, Inside phpinfo(), both the paths were showing blank.
The error will go only if we set via php code of the project.
Example code worked for me :-
$guzzle = new \GuzzleHttp\Client(['verify' => 'D:\wamp64\bin\php\php7.3.1\extras\ssl\cacert.pem']);
I was editing wrong php.ini file in last comment.
Even though loaded configuration path was showing as "D:\wamp64\bin\apache\apache2.4.37\bin\php.ini" inside phpinfo() of WAMP Server, It was actually loading "D:\wamp64\bin\apache\apache2.4.37\bin\phpForApache.ini"
Once I set both the variables inside phpForApache.ini, details are displayed in phpinfo() and error has gone without extra coding line.
cURL error 60: SSL certificate problem: unable to get local issuer certificate
This problem can occur when developing locally on windows. I am using windows 10 (x64)
In order to fix the error, I downloaded cacert.pem from https://curl.haxx.se/docs/caextract.html
Set the following value for in php.ini
curl.cainfo = "C: \ php-8.0.7 \ extras \ ssl \ cacert.pem"