2011-01-14 74 views
3

的OpenID的WordPress插件似乎并没有接受任何的谷歌OpenID提供商的链接:谷歌的OpenID不使用OpenID插件工作在WordPress

http://google.com/profiles/username 

https://google.com/accounts/o8/id 

它返回错误(对于两者):

​​

任何想法为什么? janrain搞插件工作,但我不能使用,因为其他问题。

回答

4

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

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

+0

那么,你是如何做到这一点的WordPress? – grilix 2012-07-05 02:33:49

0

必须是服务器上CA证书的问题。 Google在证书方面遇到很多麻烦。

此外,我已经在我的系统上使用Apache进行这项工作,也可能会对您的服务器造成麻烦。尝试为您的系统找到一组CA证书并安装它。

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, 
0

由于@Vanwaril和@tarantinofan指出,要做到这一点,正确的做法是让服务器上安装适当的证书。

但是,如果你选择走其他路线,如@Vanwaril提到了,注释掉的OpenID代码库负责端点验证的线条,然后执行以下操作:

的OpenID \ LIB \验证\ YADIS \ ParanoidHTTPFetcher.php - 插入下面的一行行152

curl_setopt($c, CURLOPT_SSL_VERIFYPEER, false); 

的OpenID \ LIV后\验证\ OpenID的\ consumer.php - 注释掉线970在_idResCheckSignature功能979,这样函数返回null而不是一个公开的错误

再次强调,不建议这样做,但您至少可以继续前进,直到您可以在服务器上安装正确的证书。

编辑:这个链接是处理的证书非常有帮助: https://web.archive.org/web/20090214215411/http://curl.haxx.se/docs/sslcerts.html

0

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

确保您更改后重新启动服务器。