14

我正在尝试与 Google PHP API 客户端交互,但我遇到了 Google 提供的证书问题:

谷歌错误:

SSL certificate problem, verify that the CA cert is OK.
Retrying with the CA cert bundle from google-api-php-client. 

PHP 卷曲错误:

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);  

不会被接受...

4

3 回答 3

29

由 webaware dot com dot au 的 rmckay 提供:

请大家停止将 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) 攻击,这是您不想要的!

于 2014-01-31T18:31:17.140 回答
-1

\Google_Client::$io->setOptions(array(CURLOPT_SSL_VERIFYPEER => FALSE));

于 2013-10-31T11:24:11.943 回答
-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, ... );

于 2014-01-24T06:32:16.723 回答