Php guzzle和windows上的ssl证书问题

Php guzzle和windows上的ssl证书问题,php,curl,guzzle,Php,Curl,Guzzle,我得到以下错误 GuzzleHttp\Exception\RequestException: cURL error 60: SSL certificate problem: unable to get local issuer certificate (see http://curl.haxx.se/libcurl/c/libcurl-errors.html) in C:\Users\Administrator\Documents\app\vendor\guzzlehttp\guzzle\src

我得到以下错误

GuzzleHttp\Exception\RequestException: cURL error 60: SSL certificate problem: unable to get local issuer certificate (see http://curl.haxx.se/libcurl/c/libcurl-errors.html) in C:\Users\Administrator\Documents\app\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.php:186
Stack trace:
#0 C:\Users\Administrator\Documents\app\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.php(149): GuzzleHttp\Handler\CurlFactory::createRejection(Object(GuzzleHttp\Handler\EasyHandle), Array)
#1 C:\Users\Administrator\Documents\app\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.php(102): GuzzleHttp\Handler\CurlFactory::finishError(Object(GuzzleHttp\Handler\CurlHandler), Object(GuzzleHttp\Handler\EasyHandle), Object(GuzzleHttp\Handler\CurlFactory))
#2 C:\Users\Administrator\Documents\app\vendor\guzzlehttp\guzzle\src\Handler\CurlHandler.php(43): GuzzleHttp\Handler\CurlFactory::finish(Object(GuzzleHttp\Handler\CurlHandler), Object(GuzzleHttp\Handler\EasyHandle), Object(GuzzleHttp\Handler\CurlFactory))
#3 C:\Users\Administrator\Documents\app\vendor\guzzlehttp\guzzle\src\Handler\Proxy.php(28): GuzzleHttp\Handler\CurlHandler->__invoke(Object(GuzzleHttp\Psr7\Request), Array)
#4 C:\Users\Administrator\Documents\app\vendor\guzzlehttp\guzzle\src\Handler\Proxy.php(51): GuzzleHttp\Handler\Proxy::GuzzleHttp\Handler\{closure}(Object(GuzzleHttp\Psr7\Request), Array)
#5 C:\Users\Administrator\Documents\app\vendor\guzzlehttp\guzzle\src\PrepareBodyMiddleware.php(37): GuzzleHttp\Handler\Proxy::GuzzleHttp\Handler\{closure}(Object(GuzzleHttp\Psr7\Request), Array)
#6 C:\Users\Administrator\Documents\app\vendor\guzzlehttp\guzzle\src\Middleware.php(30): GuzzleHttp\PrepareBodyMiddleware->__invoke(Object(GuzzleHttp\Psr7\Request), Array)
#7 C:\Users\Administrator\Documents\app\vendor\guzzlehttp\guzzle\src\RedirectMiddleware.php(70): GuzzleHttp\Middleware::GuzzleHttp\{closure}(Object(GuzzleHttp\Psr7\Request), Array)
#8 C:\Users\Administrator\Documents\app\vendor\guzzlehttp\guzzle\src\RedirectMiddleware.php(107): GuzzleHttp\RedirectMiddleware->__invoke(Object(GuzzleHttp\Psr7\Request), Array)
#9 C:\Users\Administrator\Documents\app\vendor\guzzlehttp\guzzle\src\RedirectMiddleware.php(72): GuzzleHttp\RedirectMiddleware->checkRedirect(Object(GuzzleHttp\Psr7\Request), Array, Object(GuzzleHttp\Psr7\Response))
#10 C:\Users\Administrator\Documents\app\vendor\guzzlehttp\promises\src\FulfilledPromise.php(39): GuzzleHttp\RedirectMiddleware->GuzzleHttp\{closure}(Object(GuzzleHttp\Psr7\Response))
#11 C:\Users\Administrator\Documents\app\vendor\guzzlehttp\promises\src\TaskQueue.php(47): GuzzleHttp\Promise\FulfilledPromise::GuzzleHttp\Promise\{closure}()
#12 C:\Users\Administrator\Documents\app\vendor\guzzlehttp\promises\src\Promise.php(246): GuzzleHttp\Promise\TaskQueue->run(true)
#13 C:\Users\Administrator\Documents\app\vendor\guzzlehttp\promises\src\Promise.php(223): GuzzleHttp\Promise\Promise->invokeWaitFn()
#14 C:\Users\Administrator\Documents\app\vendor\guzzlehttp\promises\src\Promise.php(267): GuzzleHttp\Promise\Promise->waitIfPending()
#15 C:\Users\Administrator\Documents\app\vendor\guzzlehttp\promises\src\Promise.php(225): GuzzleHttp\Promise\Promise->invokeWaitList()
#16 C:\Users\Administrator\Documents\app\vendor\guzzlehttp\promises\src\Promise.php(62): GuzzleHttp\Promise\Promise->waitIfPending()
#17 C:\Users\Administrator\Documents\app\vendor\guzzlehttp\guzzle\src\Client.php(131): GuzzleHttp\Promise\Promise->wait()
#18 C:\Users\Administrator\Documents\app\hypervote1.8.php(864): GuzzleHttp\Client->request('GET', 'http://www.inst...', Array)
#19 C:\Users\Administrator\Documents\app\hypervote1.8.php(230): isValidProxy('http://148.251....', Object(League\CLImate\CLImate))
#20 C:\Users\Administrator\Documents\app\hypervote1.8.php(18): run(Object(InstagramAPI\Instagram), Object(League\CLImate\CLImate))
#21 {main}
运行代码时:

$client = new GuzzleHttp\Client();
            $res = $client->request("GET", "http://www.google.com", ["timeout" => 60, "proxy" => $proxy]);
            $code = $res->getStatusCode();
            $is_connected = true;
我该如何解决这个问题

  • 运行
    php-i | grep php.ini
    查看配置文件的位置

  • 转到下载最新的证书

  • curl.cainfo=“/path/to/where/you/saved/cacert.pem”
    添加到您的php.ini文件中

  • 重新启动php/services/whatever,然后重试

  • 如果上述步骤不是解决方案,那么您访问的站点可能正在使用自定义SSL证书,因此请尝试从浏览器下载证书,从中创建一个pem文件,并使用
    ['verify'=>'/path/to/where/you/saved/your.pem']
    作为Guzzle客户端选项对其进行测试

    注意,在进行上述选项之前,最好/理想的做法是联系网站所有者进行验证。出于安全原因

  • 运行
    php-i | grep php.ini
    查看配置文件的位置

  • 转到下载最新的证书

  • curl.cainfo=“/path/to/where/you/saved/cacert.pem”
    添加到您的php.ini文件中

  • 重新启动php/services/whatever,然后重试

  • 如果上述步骤不是解决方案,那么您访问的站点可能正在使用自定义SSL证书,因此请尝试从浏览器下载证书,从中创建一个pem文件,并使用
    ['verify'=>'/path/to/where/you/saved/your.pem']
    作为Guzzle客户端选项对其进行测试

    注意,在进行上述选项之前,最好/理想的做法是联系网站所有者进行验证。出于安全原因