繁体   English   中英

Google Php Oauth登录错误无法找到系统CA捆绑包

[英]Google Php Oauth Login Error No system CA bundle could be found

我正在关注这个例子但是在$ client-> authenticate上得到一个错误($ _ GET ['Code']); 正在返回代码值,但不会进行身份验证。 错误是

致命错误:未捕获的异常'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设置设置为指向文件的路径,从而省略'verify'请求选项。 有关详细信息,请参阅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 in / base / data / home / apps / s~solomon第51行的-1 / 1.388711045841969234 / google-api-php-client / vendor / guzzlehttp / guzzle / src / Exception / RequestException.php

??

查看GoogleGuzzle的代码,您可能需要在设置Google客户端和authenticate()调用之前通过执行以下操作来指定证书包的位置:

$client->setHttpClient(new GuzzleHttp\Client(['verify'=>'path\to\your\cert-bundle']));

这将覆盖默认行为,并允许您指定捆绑包的位置。

您还可以通过将verify设置为false来测试这是正确的方向:

$client->setHttpClient(new GuzzleHttp\Client(['verify'=>false]));

这基本上会告诉curl不要验证主机和对等方。

App Engine Php要求在根目录下的php.ini文件中明确启用curl,其中包含ini行extension =“curl.so”小心版本,混淆了oouth进程集,我发现了一个更新,它是只在我认为最新的下载自述文件中提到过。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM