Google OpenID无法在WordPress中使用OpenID插件

时间:2011-01-14 19:17:45

标签: openid wordpress-plugin google-openid

WordPress的OpenID插件似乎不接受任何Google OpenID提供商链接:

http://google.com/profiles/username

https://google.com/accounts/o8/id

它返回错误(对于两者):

Could not discover an OpenID
identity server endpoint 
at the url:
http://google.com/profiles/username

知道为什么吗? janrain参与插件有效,但由于其他问题,我不能使用它。

5 个答案:

答案 0 :(得分:4)

问题解决了。由于谷歌,雅虎和其他一些OpenID提供商提供https端点,curl尝试在向其发出POST请求时验证另一端 - 因为curl没有附带一组CA证书,所以它在所有此类端点上都失败。

解决方案是告诉curl不要验证提供商或为其提供正确的CA证书。

答案 1 :(得分:0)

服务器上的CA证书必须存在问题。谷歌的证书很麻烦。

另外,我使用Apache在我的系统上工作,也可能是你的服务器问题。尝试为您的系统查找一包CA证书并进行安装。

答案 2 :(得分:0)

请检查php installtion中缺少的插件

/etc/php.d/dom.ini, 
/etc/php.d/mysql.ini, 
/etc/php.d/mysqli.ini, 
/etc/php.d/pdo_sqlite.ini, 
/etc/php.d/wddx.ini, 
/etc/php.d/xmlreader.ini, 
/etc/php.d/xmlwriter.ini, 
/etc/php.d/xsl.ini, 

答案 3 :(得分:0)

@Vanwaril和@tarantinofan指出,正确的方法是在服务器上安装正确的证书。

但是,如果您选择采用其他路线,如@Vanwaril所述,并注释掉负责端点验证的openid代码库中的行,请执行以下操作:

openid \ lib \ Auth \ Yadis \ ParanoidHTTPFetcher.php - 在第152行之后插入以下行

curl_setopt($c, CURLOPT_SSL_VERIFYPEER, false);

openid \ liv \ Auth \ OpenID \ consumer.php - 在_idResCheckSignature函数中注释掉第970行到第979行,这样函数返回null而不是openid错误

同样,不建议这样做,但您至少可以继续前进,直到您可以在服务器上安装正确的证书。

编辑:这个链接非常有助于处理证书: https://web.archive.org/web/20090214215411/http://curl.haxx.se/docs/sslcerts.html

答案 4 :(得分:0)

我收到了同样的错误并检查了apache错误日志我得到了以下

CURL error (60): SSL certificate problem: unable to get local issuer certificate

这是由OpenID插件的curl次调用引起的。

  

以下对我有用。资料来源:https://stackoverflow.com/a/21114601/3826642

  1. 使用此证书根证书包: https://curl.haxx.se/ca/cacert.pem

  2. 在磁盘上复制此证书包。并在php.ini

    上使用此功能

    curl.cainfo = "path_to_cert\cacert.pem"

  3. 请务必在进行更改后重新启动服务器。