Google OpenID不使用WordPress中的OpenID插件

Google OpenID不使用WordPress中的OpenID插件,openid,wordpress,google-openid,Openid,Wordpress,Google Openid,WordPress的OpenID插件似乎不接受Google OpenID提供程序链接: http://google.com/profiles/username 或 它返回错误(对于这两种情况): 知道为什么吗?janrain engage插件可以工作,但我不能使用它,因为还有其他问题。必须是您服务器上的CA证书有问题。谷歌的证书有很多问题 另外,我已经在我的Apache系统上实现了这一点,您的服务器可能也有问题。尝试为您的系统查找一组CA证书并安装。问题已解决。由于Google、Yahoo和其

WordPress的OpenID插件似乎不接受Google OpenID提供程序链接:

http://google.com/profiles/username

它返回错误(对于这两种情况):


知道为什么吗?janrain engage插件可以工作,但我不能使用它,因为还有其他问题。

必须是您服务器上的CA证书有问题。谷歌的证书有很多问题


另外,我已经在我的Apache系统上实现了这一点,您的服务器可能也有问题。尝试为您的系统查找一组CA证书并安装。

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


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

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

正如@Vanwaril和@Tarantinofa指出的,正确的方法是在服务器上安装正确的证书

但是,如果您选择采用@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错误

同样,不建议这样做,但您至少可以继续,直到您可以在服务器上安装正确的证书

编辑:此链接对处理证书非常有帮助:

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

CURL错误(60):SSL证书问题:无法获取本地颁发者证书

这是由OpenID插件的
curl
调用引起的

以下几点对我有用。资料来源:

  • 使用此证书根证书捆绑包:

  • 将此证书捆绑包复制到磁盘上。并在
    php.ini

    curl.cainfo=“path\u to\u cert\cacert.pem”


  • 请确保在进行更改后重新启动服务器。

    那么,您是如何在wordpress上执行此操作的?如果您可以在主机上安装SSL证书,这是最好的选择。否则,通过OpenIDPHP代码查找curl试图连接到提供者的位置,并注释掉验证选项。我已经忘记了确切的细节,但这应该不会太难弄清楚。很好,我不熟悉这些“CA”的东西:P,但这对我有帮助。非常感谢。
    /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, 
    
    curl_setopt($c, CURLOPT_SSL_VERIFYPEER, false);