2015-01-21 2087 views
24

这应该是一件容易的事情。我可以找到大量的怎么做,在狂饮3引用的,但他们不狂饮工作5如何忽略Guzzle 5中的无效SSL证书错误

什么我到目前为止做:

$this->client = new GuzzleClient(['defaults' => [ 
    'verify' => 'false' 
]]); 

当我发送一个请求,虽然我得到这个错误:

RequestException in RequestException.php line 51: 
SSL CA bundle not found: false 

我找不到任何有用的参考这个错误在谷歌。如果我能得到进入卷曲选项,然后我可以尝试像解决这里建议(这是狂饮3,因此为什么它不工作):http://inchoo.net/dev-talk/symfony2-guzzle-ssl-self-signed-certificate/,其中的相关章节是:

$req->getCurlOptions()->set(CURLOPT_SSL_VERIFYHOST, false); 
$req->getCurlOptions()->set(CURLOPT_SSL_VERIFYPEER, false); 
+0

好吧,显然我只是在阅读文档不好。最终发现:http://docs.guzzlephp.org/en/latest/faq.html?highlight=ssl#how-can-i-add-custom-curl-options – Gnuffo1 2015-01-21 11:48:57

回答

45

您应该使用

$this->client = new GuzzleClient(['defaults' => [ 
    'verify' => false 
]]); 

即布尔假的,不是字符串 '假'

的文档是在这里: http://guzzle.readthedocs.org/en/latest/clients.html#verify

+8

'''defaults'''实际上是不是Guzzle 5客户端配置的一部分。您应该使用: $ this-> client = new GuzzleClient([ 'verify'=> false ]); – tixastronauta 2016-01-12 18:05:29

+2

文档页面稍微更改为:http://guzzle.readthedocs.io/en/latest/request-options.html#verify – bootoffav 2016-05-25 08:44:35

15

尝试使用更新版本的作品:

$this->client = new GuzzleClient(['base_uri' => 'https://api.example.com/', 'verify' => false ]); 

或者更简单的版本:

$this->client = new GuzzleClient(['verify' => false ]); 

测试与版本6.2-dev的。

+0

这是完美的!谢谢。 – simaremare 2017-09-11 14:03:41