我正在Windows7上运行PHP版本5.6.3作为XAMPP的一部分。
当我尝试使用Mandrill API时,我得到以下错误:
未捕获异常“Mandrill_HttpError”,消息为“API调用消息/send-template失败:SSL证书问题:无法获取本地颁发者证书”
我已经尝试了在StackOverflow上读到的所有内容,包括向php.ini文件添加以下内容:
curl.cainfo = "C:\xampp\php\cacert.pem"
当然可以从http://curl.haxx.se/docs/caextract.html下载cacert.pem文件到该位置
但在所有这些之后,重新启动XAMPP和Apache服务器,但仍然得到相同的错误。
我真的不知道还能尝试什么。
谁能建议我还有什么可以尝试的吗?
终于成功了!
>
下载证书包。
把它放在某个地方。在我的例子中,这是C:\Wamp\
目录(如果您使用的是Wamp 64位,那么它就是C:\wamp64\
)。
在Apache中启用mod_ssl
和在php.ini
中启用php_openssl.dll
(通过删除开头的;
来取消对它们的注释)。但是要小心,我的问题是我有两个php.ini
文件,我需要在这两个文件中都这样做。一个是从WAMP任务栏图标中获得的,另一个是在C:\WAMP\bin\php\php5.5.12\
中获得的
在php.ini
文件中向证书添加以下行:
curl.cainfo="C:/wamp/cacert.pem"
openssl.cafile="C:/wamp/cacert.pem"
重新启动Wamp服务。
免责声明:此代码使您的服务器不安全。
我在mandrill.php文件的第65行之后遇到了同样的问题,在该文件中,它显示$this->ch=curl_init();
添加以下两行:
curl_setopt($this->ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($this->ch, CURLOPT_SSL_VERIFYPEER, 0);
这解决了我的问题,也发送电子邮件使用本地主机,但我建议不要使用它的live版本live。在您的live服务器上,没有这段代码,该代码应该可以工作。