Google Php Oauth登录错误找不到系统CA捆绑包
作者:互联网
我完全按照示例进行操作,但出现错误
$客户端 – >认证($_ GET [ ‘代码’]);
该代码值正在返回,但不会进行身份验证.错误是
致命错误:消息为“未捕获的异常’RuntimeException’,在任何常见系统位置均未找到系统CA捆绑软件.默认情况下,低于5.6的PHP版本未正确配置为使用系统的CA捆绑软件.为了验证对等证书,您需要在磁盘上提供指向“验证”请求选项的证书捆绑包的路径:http://docs.guzzlephp.org/en/latest/clients.html#verify.如果不需要特定的证书捆绑包,则Mozilla提供了一个常用的CA捆绑包,可以在此处下载(由cURL的维护者提供):https://raw.githubusercontent.com/bagder/ca-bundle/master/ca-bundle.crt.一旦磁盘上有CA捆绑包,就可以将“ openssl.cafile” PHP ini设置设置为指向文件的路径,从而可以省略“验证”请求选项.有关更多信息,请参见http://curl.haxx.se/docs/sslcerts.html.在/base/data/home/apps/s~solomon-1/1.388711045841969234/google-api-php-client/vendor/guzzlehttp/ringphp/src/Client/Cli在/ base / data / home / apps / s〜solomon中-1 / 1.388711045841969234 / google-api-php-client / vendor / guzzlehttp / guzzle / src / Exception / RequestException.php,第51行
??
解决方法:
浏览Google和Guzzle’s代码时,您可能需要在安装Google客户端时以及在authenticate()调用之前通过执行以下操作来指定在哪里可以找到证书捆绑包:
$client->setHttpClient(new GuzzleHttp\Client(['verify'=>'path\to\your\cert-bundle']));
这将覆盖默认行为,并让您指定捆绑包的位置.
您还可以通过将verify设置为false来测试这是正确的方向:
$client->setHttpClient(new GuzzleHttp\Client(['verify'=>false]));
这基本上会告诉curl不验证主机或对等方.
标签:php,ssl-certificate,oauth,ca 来源: https://codeday.me/bug/20191012/1897627.html