[英]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
使用此证书根证书包: https : //curl.haxx.se/ca/cacert.pem
将此证书包复制到磁盘上。 并在php.ini
上使用它
curl.cainfo = "path_to_cert\\cacert.pem"
进行更改后,请务必重新启动服务器。
必须是服务器上CA证书的问题。 谷歌的证书很麻烦。
此外,我已经使用Apache在我的系统上工作,也可能是你的服务器的麻烦。 尝试为您的系统查找一包CA证书并进行安装。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.