的OpenID的WordPress插件似乎并没有接受任何的谷歌OpenID提供商的链接:谷歌的OpenID不使用OpenID插件工作在WordPress
http://google.com/profiles/username
或
https://google.com/accounts/o8/id
它返回错误(对于两者):
任何想法为什么? janrain搞插件工作,但我不能使用,因为其他问题。
的OpenID的WordPress插件似乎并没有接受任何的谷歌OpenID提供商的链接:谷歌的OpenID不使用OpenID插件工作在WordPress
http://google.com/profiles/username
或
https://google.com/accounts/o8/id
它返回错误(对于两者):
任何想法为什么? janrain搞插件工作,但我不能使用,因为其他问题。
问题已解决。由于Google,Yahoo和其他一些OpenID提供商提供了https端点,因此curl试图在向其发出POST请求时验证另一端 - 由于curl没有附带一组CA证书,因此在所有此类端点上都会失败。
解决方法是告诉curl不要验证提供者或为Google提供正确的CA证书。
必须是服务器上CA证书的问题。 Google在证书方面遇到很多麻烦。
此外,我已经在我的系统上使用Apache进行这项工作,也可能会对您的服务器造成麻烦。尝试为您的系统找到一组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和@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
我得到了同样的错误,并检查Apache的错误日志中我得到了以下
CURL error (60): SSL certificate problem: unable to get local issuer certificate
这是由来自OpenID插件的curl
调用引起。
使用此证书根证书捆绑: https://curl.haxx.se/ca/cacert.pem
复制到磁盘上该证书捆绑。并使用此对php.ini
curl.cainfo = "path_to_cert\cacert.pem"
确保您更改后重新启动服务器。
那么,你是如何做到这一点的WordPress? – grilix 2012-07-05 02:33:49