我在Windows 7上运行PHP版本5.6.3作为XAMPP的一部分.
当我尝试使用Mandrill API时,我收到以下错误:
未捕获的异常'Mandrill_HttpError',消息'API调用消息/发送模板失败:SSL证书问题:无法获取本地颁发者证书'
我已经尝试过在StackOverflow上阅读的所有内容,包括将以下内容添加到php.ini文件中:
curl.cainfo = "C:\xampp\php\cacert.pem"
Run Code Online (Sandbox Code Playgroud)
并且当然从http://curl.haxx.se/docs/caextract.html下载到该位置的cacert.pem文件
但毕竟,重新启动XAMPP和Apache服务器但仍然得到相同的错误.
我真的不知道还有什么可以尝试的.
任何人都可以建议我还能尝试什么?
再会!
我有 REST API,可以通过 SSL (https://) 访问。我想将正确的证书(或证书链)与我编写的 PHP 和 CURL 脚本一起发出请求。
以下是来自我的目标 ( http://api.vkontakte.ru ) 的证书在 Firefox 中的样子:
http://speedcap.net/img/bc687485819715c65d6fe1e4ca1fdc40/1a2be.png
以下是从 Firefox 保存的“PEM 格式的证书链 X.509”的片段(此处描述:http ://unitstep.net/blog/2009/05/05/using-curl-in-php-to-access- https-ssltls-protected-sites/ ):
-----BEGIN CERTIFICATE-----
MIIFVzCCBD+gAwIBAgIHKx5Ov2FOejANBgkqhkiG9w0BAQUFADCByjELMAkGA1UE
[..skip...]
0npsf5fkvT8E13NgVY0PK6V/baMTlTgWXKQZ
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIE3jCCA8agAwIBAgICAwEwDQYJKoZIhvcNAQEFBQAwYzELMAkGA1UEBhMCVVMx
[..skip...]
qDTMBqLdElrRhjZkAzVvb3du6/KFUJheqwNTrZEjYx8WnM25sgVjOuH0aBsXBTWV
U+4=
-----END CERTIFICATE-----
Run Code Online (Sandbox Code Playgroud)
以下是 CURL 初始化的代码示例:
$this->ch = curl_init();
curl_setopt_array($this->ch, array(
CURLOPT_TIMEOUT => 30,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_AUTOREFERER => TRUE,
CURLOPT_FOLLOWLOCATION => TRUE,
CURLOPT_SSL_VERIFYPEER => TRUE,
CURLOPT_SSL_VERIFYHOST => 2,
CURLOPT_CAINFO => <path to my cert>,
));
Run Code Online (Sandbox Code Playgroud)
我收到 CURL 错误 60 …