我正在尝试与Google PHP API客户端进行交互,但我遇到了Google提供的证书问题:
Google错误:
SSL certificate problem, verify that the CA cert is OK.
Retrying with the CA cert bundle from google-api-php-client.
PHP cURL错误:
SSL certificate problem: unable to get local issuer certificate
我在Linux机器上遇到了没有问题。这些错误发生在Windows机器上。
我尝试了几种不同的解决方案:
https://code.google.com/
http://richardwarrender.com/
但无济于事。
PS:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
是不可接受的......
答案 0 :(得分:24)
友情提供rmckay at webaware dot com dot au:
请大家,停止将CURLOPT_SSL_VERIFYPEER设置为false或0.如果您的PHP安装没有最新的CA根证书包,请在curl网站下载并将其保存在您的服务器上:
http://curl.haxx.se/docs/caextract.html
然后在php.ini
文件中设置一个路径,例如在Windows上:
curl.cainfo=c:\php\cacert.pem
关闭CURLOPT_SSL_VERIFYPEER
允许中间人(MITM)攻击,这是您不想要的!
答案 1 :(得分:-1)
\ Google_Client :: $ io-> setOptions(array(CURLOPT_SSL_VERIFYPEER => FALSE));
答案 2 :(得分:-4)
@sKophek是正确的,我很感激帮助,因为我正在努力解决这个问题。对于那些喜欢触摸更多细节的人来说,这里是:(至少,对于google-api-php-client的0.6.x版本,这是真的)
1)\ google-api-php-client \ src \ io \ Google_CurlIO.php
2)
private $curlParams = array (
...
CURLOPT_SSL_VERIFYPEER => false,
... );