If you use xampp with php and curl you might encounter an error like this:
Fatal error: Uncaught exception 'HttpClientException' with message 'cURL Error: SSL certificate problem: unable to get local issuer certificate' in HttpClient.php
If this is the case the solution is easy:
- Download cacert.pem from official curl page https://curl.haxx.se/docs/caextract.html
- Copy cacert.pem to c:\xampp\cacert.pem (assuming your xampp installation resides on c:\xampp)
- Make sure mod_ssl in enabled on apache (assuming your apache configurations are lying on C:\xampp\apache\conf). Open httpd.conf and make sure line LoadModule ssl_module modules/mod_ssl.so is not commented. Comments are prefixed with #. Disable comment simply by removing #.
- Now open php.ini (assuming php.ini is C:\xampp\php). Proportionally to the apache config, locate line extension=php_openssl.dll, remove comment (by deleting #). Make sure you have php_openssl.dll in C:\xampp\php\ext although there’s no reason not have it, I guess if this is the case, you should check the whole xampp installation.
- Stay a little bit on php.ini and add the following entries:
curl.cainfo="C:/xampp/cacert.pem" openssl.cafile="C:/xampp/cacert.pem"
Make sure the paths are correct according to what you have determined in step 1.
- This is not required, but if you like keep things tidy in php.ini, move curl.cainfo and openssl.cafile to the proper sections of the php.ini [curl] and [openssl] respectively.
- Restart apache, otherwise your changes won’t have any effect. Reload your page and the error should have been removed.
I hope you’ve found this useful.
Leave a Reply