我最近也走上了这条完全相同的道路,花了我一段时间才弄清楚。看看你的 PHP 错误日志,对我来说是MAMP/logs/php_error.log。您可能会发现以下内容:
Got no response code when fetching https://www.google.com/accounts/o8/ud
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
这可能是本地 PHP/OpenSSL 安装中的问题。解决此问题的最简单方法是在捆绑的 Yadis ParanoidHTTPFetcher 中禁用 SSL 验证:
Index: /app/vendors/Auth/Yadis/ParanoidHTTPFetcher.php
===================================================================
--- a/app/vendors/Auth/Yadis/ParanoidHTTPFetcher.php
+++ b/app/vendors/Auth/Yadis/ParanoidHTTPFetcher.php
@@ -131,7 +131,9 @@
if (defined('Auth_OpenID_VERIFY_HOST')) {
curl_setopt($c, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($c, CURLOPT_SSL_VERIFYHOST, 2);
+ } else {
+ curl_setopt($c, CURLOPT_SSL_VERIFYPEER, false);
}
curl_exec($c);
$code = curl_getinfo($c, CURLINFO_HTTP_CODE);
@@ -204,6 +206,8 @@
if (defined('Auth_OpenID_VERIFY_HOST')) {
curl_setopt($c, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($c, CURLOPT_SSL_VERIFYHOST, 2);
+ } else {
+ curl_setopt($c, CURLOPT_SSL_VERIFYPEER, false);
}
curl_exec($c);
要在您的生产系统上启用 SSL 主机验证,请在core.php 中添加类似这样的内容:
if (!Configure::read('debug')) {
define('Auth_OpenID_VERIFY_HOST', true);
}