web-dev-qa-db-ja.com

Guzzle 5で無効なSSL証明書エラーを無視する方法

これは簡単なことです。 Guzzle 3でそれを行う方法に関する多くの参照を見つけることができますが、Guzzle 5では機能しません。

これまで私がやっていること:

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

次のエラーが表示されますが、リクエストを送信すると:

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

私はグーグルでこのエラーへの有用な参照を見つけることができません。 curlオプションにアクセスできる場合は、ここで提案されている解決策のようなものを試すことができます(これはGuzzle 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);
41
Gnuffo1

あなたが使用する必要があります

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

つまり、文字列「false」ではなくブール値のfalse

ドキュメントはこちらです: http://guzzle.readthedocs.org/en/latest/clients.html#verify

62
pjcdawkins

動作する最新バージョンで試してください:

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

またはより単純なバージョン:

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

バージョン6.2-devでテスト済み。

32
SND

実際のバージョンは正しいもの

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

2018年、これは機能しません:

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