3

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

4

5 回答 5

4

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

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

于 2011-02-07T06:36:36.550 回答
0

一定是服务器上的 CA 证书有问题。谷歌的证书有很多麻烦。

另外,我已经在我的系统上使用 Apache 进行了这项工作,您的服务器也可能有问题。尝试为您的系统查找一组 CA 证书并安装它。

于 2011-01-15T12:58:50.453 回答
0

请检查 php 安装中是否缺少插件

/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, 
于 2016-04-25T06:00:43.087 回答
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

于 2016-06-20T16:11:59.543 回答
0

我遇到了同样的错误并检查了 apache 错误日志,我得到了以下信息

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

这是由curlOpenID 插件的调用引起的。

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

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

  2. 将此证书包复制到您的磁盘上。并使用它php.ini

    curl.cainfo = "path_to_cert\cacert.pem"

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

于 2016-09-06T18:42:00.387 回答