I have had an ExpressionEngine site with Store running well for a while now, then out of the blue customers started getting errors when trying to complete checkout and pay.

I looked into it and found the following error:

Fatal error: Uncaught exception 'Guzzle\Http\Exception\CurlException' with message '[curl] 60: SSL certificate problem: self signed certificate in certificate chain [url] https://secure.authorize.net/gateway/transact.dll' in /home/content/93/10773693/html/engine/expressionengine/third_party/store/vendor/guzzle/http/Guzzle/Http/Curl/CurlMulti.php:338 Stack trace: #0 /home/content/93/10773693/html/engine/expressionengine/third_party/store/vendor/guzzle/http/Guzzle/Http/Curl/CurlMulti.php(279): Guzzle\Http\Curl\CurlMulti->isCurlException(Object(Guzzle\Http\Message\EntityEnclosingRequest), Object(Guzzle\Http\Curl\CurlHandle), Array) #1 /home/content/93/10773693/html/engine/expressionengine/third_party/store/vendor/guzzle/http/Guzzle/Http/Curl/CurlMulti.php(244): Guzzle\Http\Curl\CurlMulti->processResponse(Object(Guzzle\Http\Message\EntityEnclosingRequest), Object(Guzzle\Http\Curl\CurlHandle), Array) #2 /home/content/93/10773693/html/engine/expressionengine/third_party/store/vendor/guzzle/http/Guzzle/Http/Curl/CurlMulti.php(22 in /home/content/93/10773693/html/engine/expressionengine/third_party/store/vendor/guzzle/http/Guzzle/Http/Curl/CurlMulti.php on line 338

EE version 2.11.3 with Store version 2.5.1. And I am using Authorize.net as the payment gateway.

I contacted Authorize.net and they said it may be due to a recent change they made and said "the website might not be automatically validating our current SSL certificate. Here is a link that will help you, or your developer make sure your using the most up to date certifications. https://community.developer.authorize.net/t5/News-and-Announcements/SSL-Certificate-Updates-for-Legacy-SDKs/m-p/62935".

How can I fix this and get Store working again? Thanks.

I just dealt with the same error. So annoying. Just make sure your vendor/guzzle/guzzle/src/Guzzle/Http/Resources/cacert.pem certificates are updated to use the one in the Auth.net PHP SDK:

https://raw.githubusercontent.com/AuthorizeNet/sdk-php/master/lib/ssl/cert.pem

Sometimes there's more than one depending on how the dev set up composer dependencies. Just grep for any vendor/guzzle folders throughout or ask the plugin dev to update the packages.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.