System_证书问题

5 阅读1分钟
  1. 证书问题,curl: (77) error setting certificate verify locations: CAfile: /etc/ssl/cert.pem CApath: none

解决方法: 这个问题通常是因为 macOS 系统中的 CA 根证书文件 (/etc/ssl/cert.pem) 损坏、过期或路径配置错误,导致 curl 无法建立安全的 HTTPS 连接。  你可以按照以下步骤修复:

  1. 修复系统证书链接(推荐) 在 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
  1. 手动更新根证书包 如果系统自带证书过旧(常见于 High Sierra 或 Mojave),你可以手动下载 curl.se 官方提供的证书包 来替换: a). 下载最新证书:  访问 curl.se/ca/cacert.pem 并保存。 b). 替换原有文件:
    sudo cp ~/Downloads/cacert.pem /etc/ssl/cert.pem
    
    注意:操作前建议先备份原文件 sudo cp /etc/ssl/cert.pem /etc/ssl/cert.pem.bak。 
  2. 临时绕过(仅建议在安装 Homebrew 时使用) 如果你需要立即运行安装脚本,可以告诉 curl 忽略证书验证(不安全,仅限信任的源):
# 在终端输入此命令后再执行 brew 安装/更新
export HOMEBREW_CURL_RC=1
echo "insecure" >> ~/.curlrc
# 执行完 brew 命令后,务必恢复安全设置:
# rm ~/.curlrc
```
### 4. 彻底解决:重装 ca-certificates
一旦你通过上述方法恢复了 `brew` 的基本功能,请立即运行以下命令以确保未来的证书管理正常:
```
brew install ca-certificates
```