You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

macOS Catalina下git/curl提示SSL证书已过期但实际有效如何修复?

问题原因

  • 不同软件使用的证书信任体系独立:Google Chrome自带内置的根证书库,可直接识别信任ISRG Root X1根证书,因此可以正常访问站点。
  • 你当前使用的macOS Catalina系统自带的LibreSSL 2.6.5存在证书链校验逻辑缺陷:虽然系统根证书库中已经内置了受信任的ISRG Root X1根证书(该根证书兼容macOS 10.12.1及以上版本,符合你当前系统版本要求),但Let's Encrypt默认返回的证书链包含已过期的DST Root CA X3交叉签名,旧版本LibreSSL在校验时会优先匹配到该过期根证书,直接终止校验并抛出证书过期错误,不会继续遍历查找信任链中的有效根证书。
  • 系统默认安装的curl、git都依赖系统内置的LibreSSL库做SSL校验,因此都会触发该报错。

修复方案

方案1:替换新版SSL依赖(推荐长期使用)

通过Homebrew安装更新版本的openssl、curl、git,替换系统自带的旧版本组件:

  1. 若未安装Homebrew可先完成安装,已安装则直接执行下一步
  2. 执行安装命令:
brew install openssl curl git
  1. 编辑终端配置文件(zsh对应~/.zshrc,bash对应~/.bash_profile),添加以下内容优先加载brew安装的组件:
export PATH="/usr/local/opt/curl/bin:/usr/local/opt/git/bin:$PATH"
export SSL_CERT_FILE="$(brew --prefix)/etc/ca-certificates/cacert.pem"
  1. 执行source ~/.zshrc(对应bash则执行source ~/.bash_profile)让配置生效,后续执行git、curl命令即可正常校验证书。

方案2:临时关闭SSL校验(仅应急使用)

仅针对单次操作临时关闭校验,不推荐长期使用,存在安全风险:

  • git操作:
git -c http.sslVerify=false pull
  • curl操作:
curl -k https://gitlab.example.com/development/soa-report-analysis.git

方案3:手动指定根证书校验

单独下载ISRG Root X1根证书到本地,操作时手动指定证书路径:

  • git全局配置生效:
git config --global http.sslCAInfo /本地存储路径/isrg-root-x1.pem
  • curl单次操作生效:
curl --cacert /本地存储路径/isrg-root-x1.pem https://gitlab.example.com/development/soa-report-analysis.git

内容的提问来源于stack exchange,提问作者Dolphin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 19:24:04