2015-01-21 3 views
24

Это должно быть легко. Я могу найти множество ссылок на том, как сделать это в жрать 3, но они не работают в жрать 5.Как игнорировать неверные ошибки сертификата SSL в Guzzle 5

Что я делал до сих пор:

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

Когда я посылаю запрос, хотя я получить эту ошибку:

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

Я не могу найти полезную ссылку на эту ошибку в google. Если бы я мог получить доступ к локон вариантов, то я мог бы попробовать что-то подобное решение, предложенное здесь (который для жрут 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

ответ

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

+2

Страница документов слегка изменена на: http://guzzle.readthedocs.io/en/latest/request-options.html#verify – bootoffav

15

Try с обновленной версией, которая работает:

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

или более простой вариант:

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

Испытано с версией 6.2-разработчика.

+0

это прекрасно! Благодарю. – simaremare

Смежные вопросы