☠️ 错误问题
0 cURL error 77: error setting certificate file: /opt/homebrew/etc/openssl@3/cert.pem (see https://curl.haxx.se/libcurl/c/libcurl-errors.html)
🧐 错误原因分析
这个 curl: (77) error setting certificate file 错误,通常是因为 curl 在指定的路径下找不到有效的SSL证书文件
查找证书是否存在:
bash
ls -l /opt/homebrew/etc/openssl@3/cert.pem
查询结果:
bash
ls: /opt/homebrew/etc/openssl@3/cert.pem: No such file or directory //文件不存在
🛠️ 解决方案
1.http请求是关闭证书方案
PHP 原生 cURL 关闭 SSL 校验
php
$ch = curl_init($url);
// 核心两行关闭SSL校验
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 不校验服务端证书合法性
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // 不校验证书域名匹配
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type:application/json']);
$resp = curl_exec($ch);
curl_close($ch);
PHP GuzzleHttp 关闭证书校验
方式 1:客户端全局关闭(该实例所有请求生效)
php
use GuzzleHttp\Client;
$client = new Client([
'verify' => false, // 一键关闭SSL校验
]);
$res = $client->get($url);
方式 2:仅单次请求关闭
php
$client = new Client();
$res = $client->get($url, [
'verify' => false
]);
2.本地存在证书处理方案
查找证书:
bash
ls -l $(brew --prefix ca-certificates)/share/ca-certificates/cacert.pem
查询结果:
bash
/opt/homebrew/opt/ca-certificates/share/ca-certificates/cacert.pem
证书存在推荐两种方案:
方案一:设置环境变量 :编辑你的 Shell 配置文件(~/.zshrc 或 ~/.bash_profile),加入下面这行:
bash
export SSL_CERT_FILE=$(brew --prefix ca-certificates)/share/ca-certificates/cacert.pem
保存后,执行 source ~/.zshrc 让配置生效。这样,所有遵循 SSL_CERT_FILE 环境变量的程序(如 Python、Node.js 等)都能自动找到正确的证书文件。
方案二:手动创建软链接 :如果你希望 OpenSSL 的默认目录里有一个 cert.pem,可以手动创建软链接:
bash
ln -sf $(brew --prefix ca-certificates)/share/ca-certificates/cacert.pem /opt/homebrew/etc/openssl@3/cert.pem
3.手动下载证书更新
-
从 curl - Extract CA Certs from Mozilla 下载
cacert.pem文件。 -
将其复制到目标位置:
bash
sudo cp ~/Downloads/cacert.pem /opt/homebrew/etc/openssl@3/cert.pem
知识点补充
1.基于MacBook M芯片openssl扩展安装
在多数开发环境中,OpenSSL 作为基础加密库被广泛依赖,可能你电脑安装mysql、redis、php等已经将OpenSSL安装成功,检测OpenSSL是否安装:
bash
openssl -v
操作过程:
bash
# 安装成功提示版本信息
OpenSSL 3.5.0 8 Apr 2025 (Library: OpenSSL 3.5.0 8 Apr 2025)
未安装推荐homebrew进行安装:
bash
# 搜索openssl扩展
brew search opnessl
查看openssl扩展信息
brew info openssl@3
安装openssl扩展(安装3.x)
brew install openssl@3
openssl详细信息:
bash
==> openssl@3 ✔: stable 3.5.0 (bottled)
Cryptography and SSL/TLS Toolkit
https://openssl-library.org
Installed
/opt/homebrew/Cellar/openssl@3/3.5.0 (7,563 files, 37MB) *
Poured from bottle using the formulae.brew.sh API on 2026-02-04 at 14:49:48
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/o/openssl@3.rb
License: Apache-2.0
==> Dependencies
Required: ca-certificates ✔
==> Caveats
A CA file has been bootstrapped using certificates from the system
keychain. To add additional certificates, place .pem files in
/opt/homebrew/etc/openssl@3/certs
and run
/opt/homebrew/opt/openssl@3/bin/c_rehash
==> Downloading https://mirrors.aliyun.com/homebrew/homebrew-bottles/api/formula/openssl@3.json
==> Analytics
install: 472,664 (30 days), 1,249,026 (90 days), 5,076,655 (365 days)
install-on-request: 82,242 (30 days), 195,745 (90 days), 699,420 (365 days)
build-error: 9,420 (30 days)
安装后路径:
-
M芯片必须用
/opt/homebrew/opt/openssl@3路径 -
Intel芯片用
/usr/local/opt/openssl@3路径