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 Engage插件可以使用,但由于其他问题无法使用。
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
/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,
你的服务器上可能存在CA证书问题。Google的证书经常出现问题。
此外,我已经在我的Apache系统上使其工作,你的服务器也可能存在问题。尝试找到适用于你的系统的CA证书包并安装它。
正如@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
我遇到了同样的错误,检查了Apache错误日志后发现以下内容:
CURL error (60): SSL certificate problem: unable to get local issuer certificate
这是由OpenID插件中的curl
调用引起的。
以下方法对我有效。来源:https://dev59.com/ZGEi5IYBdhLWcg3wnNXA#21114601
使用此证书根证书包: https://curl.haxx.se/ca/cacert.pem
将此证书包复制到您的磁盘上,并在php.ini
中使用它
curl.cainfo = "path_to_cert\cacert.pem"
确保在更改后重新启动服务器。