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参与插件有效,但由于其他问题,我不能使用它。
答案 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
使用此证书根证书包: https://curl.haxx.se/ca/cacert.pem
在磁盘上复制此证书包。并在php.ini
curl.cainfo = "path_to_cert\cacert.pem"
请务必在进行更改后重新启动服务器。