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

Windows环境下自托管GitLab Runner克隆仓库超时及x509证书未知权威问题排查

问题分析与解决办法

先帮你拆解这个问题,分两个核心点逐一解答:

为什么Runner会自动执行仓库克隆?

这是GitLab Runner的默认内置行为,完全不需要你在.gitlab-ci.yml里手动配置克隆指令。Runner在启动每个job之前,都会自动完成仓库克隆(包括拉取最新代码),目的是确保job始终在干净、同步的代码环境中运行。如果确实需要跳过这个步骤,可以在job里添加变量配置:

variables:
  GIT_STRATEGY: none

不过除非有特殊的缓存或代码复用需求,一般不建议这么做。

流水线卡顿超时的原因与解决办法

从你提取的日志x509: certificate signed by unknown authority可以直接定位问题:GitLab Runner无法验证GitLab.com的SSL证书,导致Runner和GitLab服务器之间的HTTPS请求失败,无法正常获取job任务,最终流水线因等待超时卡住。

下面是几种可行的解决办法,按安全性优先级排序:

方法1:导入GitLab.com根证书到Windows证书存储(生产环境推荐)

这是最安全的解决方案,步骤如下:

  1. 打开浏览器访问https://gitlab.com,点击地址栏的锁形图标,查看证书详情,导出根证书(比如DigiCert Global Root CA,格式选择Base64编码的X.509(.CER))。
  2. 按下Win + R,输入certlm.msc打开本地计算机证书管理器。
  3. 展开「受信任的根证书颁发机构」→「证书」,右键选择「所有任务」→「导入」,按照向导完成刚才导出的根证书导入。
  4. 重启GitLab Runner服务:
    gitlab-runner restart
    

方法2:临时关闭证书验证(仅测试环境适用)

如果只是测试场景,可以快速跳过证书验证,但存在安全风险,生产环境禁止使用:

  1. 编辑GitLab Runner的配置文件config.toml(默认路径一般是C:\GitLab-Runner\config.toml),在[[runners]]区块添加一行:
    tls_verify = false
    
  2. 保存后重启Runner服务:
    gitlab-runner restart
    

方法3:检查Runner运行权限

如果之前修改过GitLab Runner服务的运行用户,可能导致它无法访问Windows系统的证书存储。可以尝试将运行用户切换回默认的Local System,或者给当前运行用户授予证书读取权限,再重启服务测试。

完成以上操作后,重新触发流水线,应该就能正常执行了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 06:53:24