在我的机器上运行消费者示例,我收到以下错误:
Got no response code when fetching https://www.google.com/accounts/o8/id
CURL error (60): SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
这意味着 curl 无法验证 google 的 https 服务器证书。您可以通过向 curl 提供 CA 证书以通过CURLOPT_CAINFO
/验证 google 的证书CURLOPT_CAPATH
,或者 - 更容易 - 通过停止验证证书来解决此问题CURLOPT_SSL_VERIFYPEER
。以下更改Auth/Yadis/ParanoidHTTPFetcher.php
为我完成了后者:
--- ParanoidHTTPFetcher.php.orig 2009-04-22 02:31:20.000000000 +0800
+++ ParanoidHTTPFetcher.php 2009-09-30 22:35:24.093750000 +0800
@@ -127,6 +127,9 @@
Auth_OpenID_USER_AGENT.' '.$curl_user_agent);
curl_setopt($c, CURLOPT_TIMEOUT, $off);
curl_setopt($c, CURLOPT_URL, $url);
+
+ // don't verify server cert
+ curl_setopt($c, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_exec($c);
当然,您的 curl 安装还必须支持 ssl - 检查您的phpinfo()
. 另外,如果CURLOPT_SSL_VERIFYPEER
禁用,CURLOPT_SSL_VERIFYHOST
可能还需要TRUE
或FALSE
。
另请参阅http://www.openrest.eu/docs/openid-not-completely-enabled-for-google.php(通过相关 的为什么 Google OpenID 提供程序不能在我的服务器上使用 PHP-OpenId?)。