web-dev-qa-db-fra.com

Comment ignorer les erreurs de certificat SSL non valides dans Guzzle 5

Cela devrait être une chose facile à faire. Je peux trouver beaucoup de références sur la façon de le faire dans Guzzle 3, mais elles ne fonctionnent pas dans Guzzle 5.

Ce que je fais jusqu'à présent:

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

Lorsque j'envoie une demande, j'obtiens cette erreur:

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

Je ne trouve aucune référence utile à cette erreur sur Google. Si je pouvais avoir accès aux options curl, je pourrais essayer quelque chose comme la solution suggérée ici (qui est pour Guzzle 3, donc pourquoi ça ne marche pas): http://inchoo.net/dev-talk/symfony2-guzzle-ssl-self-signed-certificate / , dont la section pertinente est:

$req->getCurlOptions()->set(CURLOPT_SSL_VERIFYHOST, false);
$req->getCurlOptions()->set(CURLOPT_SSL_VERIFYPEER, false);
41
Gnuffo1

Tu devrais utiliser

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

c'est-à-dire un booléen faux, pas la chaîne 'faux'

La documentation est ici: http://guzzle.readthedocs.org/fr/latest/clients.html#verify

62
pjcdawkins

Essayez avec une version mise à jour qui fonctionne:

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

ou une version plus simple:

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

Testé avec la version 6.2-dev.

32
SND

La version actuelle est la bonne:

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

En 2018, cela ne fonctionne pas:

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