cURL 错误 60:SSL 证书问题:自签名证书(参见 https://curl.haxx.se/libcurl/c/libcurl-errors.html)

cURL error 60: SSL certificate problem: self signed certificate (see https://curl.haxx.se/libcurl/c/libcurl-errors.html)

我在我的 Laravel 7 项目和 XAMPP 7.4.5 中使用 Guzzle,我正在尝试对我的本地 API localhost/events_platforma/view/users 进行 GET 工作正常但是当我试图向 https://localhost/events_platforma/register 发出 POST 请求时,它失败并给出了 cURL 错误和我的 API 在 SLIM 上。

我已经添加了这个文件

curl.cainfo = curl.cainfo="C:\xampp\php\extras\ssl\cacert.pem"

但还是报错

本地主机的快速解决方案是使用 verify guzzle 中的选项关闭证书验证为 false。

下面是一个简单的小例子

use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'http://exmaple.org'
]);
$client->request('GET', '/', ['verify' => false]);

如果您正在使用 laravel 提供的 Http-client,您可以像这样添加 guzzle 选项,

$response = Http::withOptions([
    'verify' => false,
])->get('http://example.org/');

注意:

虽然 guzzle 建议不要使用它,但如果您正在测试自己的 api,它可以工作。


尽管您只需提供路径即可根据请求简单地添加证书。

Mozilla provides a commonly used CA bundle which can be downloaded here (provided by the maintainer of cURL).

// Use a custom SSL certificate on disk.
$client->request('GET', '/', ['verify' => '/path/to/cacert.pem']);

阅读 https://curl.se/docs/sslcerts.html 中有关证书的更多信息。
从 guzzle 文档中阅读更多关于验证的信息 verify