我在Windows 7上运行PHP Version 5.6.3作为XAMPP的一部分。
当我尝试使用Mandrill API时,我得到以下错误:
未捕获的异常“Mandrill_HttpError”与消息“API调用消息/发送模板失败:SSL证书问题:无法获得本地颁发者证书”
我已经尝试了我在StackOverflow上读到的所有内容,包括将以下内容添加到php.ini文件:
curl.cainfo = "C:\xampp\php\cacert.pem"
当然也下载到了cacert。来自http://curl.haxx.se/docs/caextract.html的Pem文件
但是在这之后,重新启动XAMPP和Apache服务器,但仍然得到相同的错误。
我真的不知道还能试什么。
有没有人能建议我还能尝试些什么?
注意:关闭SSL验证功能存在安全影响。如果不验证SSL/HTTPS连接的真实性,恶意攻击者可以模拟可信端点(如GitHub或其他远程Git主机),您将容易受到中间人攻击。
在使用此解决方案之前,请确保您完全理解安全问题。
我发现新的解决方案没有任何必要的认证调用curl只添加两行代码。
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
在亚马逊Linux (CentOS / Red Hat等)上,我做了以下工作来解决这个问题。首先复制cacert。Pem从http://curl.haxx.se/ca/cacert.pem下载,放在/etc/pki/ca-trust/source/anchors/目录下。执行update-ca-trust命令。
下面是来自https://serverfault.com/questions/394815/how-to-update-curl-ca-bundle-on-redhat的一句话
Curl https://curl.se/ca/cacert.pem -o /etc/pki/ca-trust/source/anchors/curl-cacert-updated。Pem && update-ca-trust
然而,由于curl被破坏,我实际上使用这个命令来下载cacert。pem文件。
Wget——no-check-certificate http://curl.haxx.se/ca/cacert.pem
执行update-ca-trust命令后,可以重新启动web服务器服务httpd restart (apache)或service nginx restart (nginx)。