- 证书问题,curl: (77) error setting certificate verify locations: CAfile: /etc/ssl/cert.pem CApath: none
解决方法:
这个问题通常是因为 macOS 系统中的 CA 根证书文件 (/etc/ssl/cert.pem) 损坏、过期或路径配置错误,导致 curl 无法建立安全的 HTTPS 连接。
你可以按照以下步骤修复:
- 修复系统证书链接(推荐)
在 macOS 上,
/etc/ssl/cert.pem通常是一个指向系统根证书的符号链接。如果该链接失效,可以尝试重新创建:
sudo ln -sf /etc/ssl/cert.pem /etc/ssl/certs/cert.pem
# 如果 /etc/ssl/cert.pem 文件本身丢失或损坏,可尝试从系统 Keychain 导出
sudo security find-certificate -a -p /System/Library/Keychains/SystemRootCertificates.keychain > /tmp/certs.pem
sudo mv /tmp/certs.pem /etc/ssl/cert.pem
- 手动更新根证书包
如果系统自带证书过旧(常见于 High Sierra 或 Mojave),你可以手动下载 curl.se 官方提供的证书包 来替换:
a). 下载最新证书: 访问 curl.se/ca/cacert.pem 并保存。
b). 替换原有文件:
注意:操作前建议先备份原文件sudo cp ~/Downloads/cacert.pem /etc/ssl/cert.pemsudo cp /etc/ssl/cert.pem /etc/ssl/cert.pem.bak。 - 临时绕过(仅建议在安装 Homebrew 时使用)
如果你需要立即运行安装脚本,可以告诉
curl忽略证书验证(不安全,仅限信任的源):
# 在终端输入此命令后再执行 brew 安装/更新
export HOMEBREW_CURL_RC=1
echo "insecure" >> ~/.curlrc
# 执行完 brew 命令后,务必恢复安全设置:
# rm ~/.curlrc
```
### 4. 彻底解决:重装 ca-certificates
一旦你通过上述方法恢复了 `brew` 的基本功能,请立即运行以下命令以确保未来的证书管理正常:
```
brew install ca-certificates
```