Comment ignorer les erreurs de certificat SSL invalides 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 ils ne fonctionnent pas dans Guzzle 5.

Ce que je fais pour l'instant:

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

Quand j'ai envoyer une demande si 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 alors je pourrais essayer quelque chose comme la solution proposée ici (qui est pour Guzzle 3, donc pourquoi il ne fonctionne 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);
33
demandé sur Gnuffo1 2015-01-21 14:43:13

3 réponses

Vous devez utiliser

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

c'est à dire une valeur Booléenne faux, pas la chaîne "false"

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

50
répondu pjcdawkins 2015-02-21 19:22:08

Essayez avec la version mise à jour qui fonctionne:

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

ou plus simple version:

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

Testé avec la version 6.2-dev.

24
répondu SND 2016-07-15 20:33:37

La version actuelle est correct:

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

À 2018, cela ne fonctionne pas:

$this->client = new GuzzleClient(['defaults' => [
    'verify' => false
]]);
3
répondu PriNcee 2018-06-15 06:42:45