The issue is that the SSL certificate provided by your transaction processor is untrusted by your OS (or by the certs available to cURL).
The solution for a missing CA is -
- to ensure the presence of correct CA certificates to cURL by installing system CA updates, or
- to retrieve an old copy of the correct CA and make it available to cURL if the one used by your payment processor is invalid (see AGH link below).
Since the error message contains
SSL3_GET_SERVER_CERTIFICATE, I wonder if this is happening because your payment processor extension is attempting to use SSLv3 (recently deprecated). You might want to check that if there are any references to
CURLOPT_SSLVERSION in your payment processor, they are not set to
3. (You can set them to
0 as in this fix or simply remove the line.)
This issue was documented by AGH Strategies recently:
Authorize.NET say that you should make available three root CAs ("production certificate upgrades") link below.
"Please contact your solution provider and web hosting company to ensure your solution has these certificates installed and is capable of using them to secure your connection to Authorize.Net. In many cases the certificates may already be installed."