繁体   English   中英

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

[英]Google OpenID not working with OpenID plugin in WordPress

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参与插件有效,但由于其他问题,我不能使用它。

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

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

请检查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, 

正如@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

我得到了同样的错误并检查了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"

进行更改后,请务必重新启动服务器。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM