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

GitLab Runner主机执行git fetch报证书验证位置设置错误如何解决

问题现象

在部署GitLab Runner的Windows主机PowerShell控制台执行git fetch --all时返回如下报错:

fatal: unable to access 'https://gitlab.domain/project.git/': error setting certificate verify locations:
CAfile: C:\Runners\MyRunner\builds\123xH2N\0\project.tmp\CI_SERVER_TLS_CA_FILE
CApath: none
error: Could not fetch origin
根因说明

Git配置中残留了GitLab CI Job运行时注入的临时TLS CA证书路径,该路径指向Runner执行Job时生成的临时工作目录,Job执行完成后临时目录会被自动清理。手动执行Git命令时,Git会尝试读取这个已不存在的证书文件,最终触发证书校验位置配置错误。

排查步骤
  • 分层级检查Git配置,定位异常配置项所在的层级:
    • 查看系统级Git配置:git config --system --list
    • 查看当前用户全局Git配置:git config --global --list
    • 查看当前仓库本地Git配置:git config --local --list
  • 在输出结果中检索http.sslCAInfo配置项,确认其值是否为报错信息中提到的Runner临时目录路径。
解决方案

根据异常配置所在的层级,执行对应命令删除无效配置:

  • 若异常配置属于系统级:以管理员身份启动PowerShell,执行 git config --system --unset http.sslCAInfo
  • 若异常配置属于用户全局级:直接在当前用户PowerShell会话执行 git config --global --unset http.sslCAInfo
  • 若异常配置属于仓库本地级:进入对应项目仓库目录,执行 git config --local --unset http.sslCAInfo
后续规避建议
  • 配置删除后重新执行git fetch --all,确认命令可正常执行。
  • 如需为自托管GitLab配置TLS证书信任,需将CA证书文件存放在主机固定非临时目录(例如C:\Git\certs\gitlab-ca.crt),再将http.sslCAInfo指向该固定路径,避免临时文件被清理后触发同类报错。
  • 若使用Shell执行器部署Windows GitLab Runner,检查Runner目录下的config.toml配置,不要在pre_clone_script等全局执行钩子中写入将http.sslCAInfo指向临时目录的逻辑,防止每次Job执行时污染主机Git持久配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 04:36:20