我剛剛走過這條完全相同的路徑,花了一段時間才弄清楚。看看你的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);
}
這似乎已經爲Flickr工作(我認爲)將繼續嘗試。感謝您的解決方案!我希望這是一個適當的選擇,而不是黑客。我在一個相當便宜的服務器上,所以我很容易想象到SSL並不是真的爲我設置的。 – paullb 2010-10-27 16:11:37