Google OpenID不使用WordPress中的OpenID插件
WordPress的OpenID插件似乎不接受Google 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和其
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);