当前位置: 首页 > 知识库问答 >
问题:

如何在Guzze5中忽略无效的SSL证书错误

赵俊晤
2023-03-14

这应该很容易做到。我可以在Guzze3中找到很多关于如何做到这一点的参考资料,但是它们在Guzze5中不起作用。

我目前正在做的事情:

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

当我发送请求时,我收到了这个错误:

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

我在谷歌上找不到任何关于这个错误的有用参考。如果我可以访问旋度选项,那么我可以尝试类似这里建议的解决方案(这是针对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);

共有3个答案

寿丰
2023-03-14

实际版本正确:

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

2018年,这不起作用:

$this->client = new GuzzleClient(['defaults' => [
    'verify' => false
]]);
阎阎宝
2023-03-14

尝试使用有效的更新版本:

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

或更简单的版本:

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

使用版本6.2-dev进行测试。

羊舌富
2023-03-14

你应该用

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

即布尔值false,而不是字符串“false”

留档在这里:https://docs.guzzlephp.org/en/5.3/clients.html#verify

注意:有些人给出了适用于Guzzle 6的其他答案。如果你正在使用这些版本,它们是很好的答案(但最初的问题显然是关于Guzzle 5的)。

 类似资料:
  • 问题内容: Apache Http客户端。您可以在此处查看相关代码: 这是每个人都用来忽略SSL证书错误的方法(仅将其设置为登台,它将不会在生产中使用)。但是,我仍然收到以下异常/堆栈跟踪: 任何提示都很好。如果我做的TrustManager错误,或者我应该以不同的方式执行HTTP Post方法,则可以选择两种方式。 谢谢! 问题答案: 首先,不要 忽略 证书错误。与他们打交道。忽略证书错误将打开

  • 问题内容: 如何绕过Apache HttpClient 4.0的无效SSL证书错误? 问题答案: 你需要使用自己的TrustManager创建SSLContext并使用此上下文创建HTTPS方案。这是代码,

  • 如何忽略Apache HttpClient4.3的SSL证书(信任所有证书)? null 仅用于测试目的。孩子们,不要在家里(或生产中)尝试

  • 我正在开发一个应用程序,使用rest API将其连接到数据库,我的服务器有一个SSL证书,当我试图发送请求时,从我的反应本地应用程序显示此错误msg是有办法禁用SSL验证反应原生Android。 如果有人知道,帮忙。

  • 问题内容: 如何忽略Apache HttpClient 4.3的SSL证书(全部信任)? 我在SO上找到的所有答案都对待以前的版本,并且API更改了。 编辑: 仅用于测试目的。孩子们,不要在家(或生产中)尝试 问题答案: 以下代码可用于信任自签名证书。创建客户端时,必须使用TrustSelfSignedStrategy: 我没有故意包括:重点是允许使用自签名证书进行测试,因此您不必从证书颁发机构获