【问题标题】:Google OpenID not working with OpenID plugin in WordPressGoogle OpenID 无法与 WordPress 中的 OpenID 插件一起使用
【发布时间】:2011-06-09 08:40:36
【问题描述】:

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 wordpress google-openid


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:

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

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

          【讨论】:

          • 那么,你是如何在 wordpress 上做到这一点的?
          • 如果您可以在您的主机上安装 SSL 证书,那是最好的选择。否则,通过 OpenID PHP 代码查找 curl 尝试连接到提供程序的位置并注释掉验证选项。具体细节我忘记了,但应该不难弄清楚。
          • 很好,我不熟悉这种“CA”的东西:P,但这会对我有所帮助。谢谢!
          【解决方案5】:

          一定是您服务器上的 CA 证书有问题。 Google 的证书有很多问题。

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

          【讨论】:

            猜你喜欢
            • 2018-07-10
            • 2023-03-25
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-06-13
            相关资源
            最近更新 更多