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

使用Jenkins通过HTTPS拉取GitLab仓库时遇证书验证失败问题

解决Jenkins通过HTTPS拉取GitLab仓库时的证书验证失败问题

我之前也踩过一模一样的坑,给你几个实用的解决办法,按优先级来选:

先搞清楚错误原因

这个报错fatal: unable to access ... server certificate verification failed本质是:Git连接GitLab服务器时,没法验证服务器的SSL证书——要么是GitLab用了自签名证书,要么是Jenkins所在服务器的CA信任存储里没包含GitLab证书的根CA。


1. 临时排查:跳过SSL证书验证(仅测试用,生产环境别碰!)

如果只是想快速确认是不是证书的锅,可以临时让Git跳过验证:

  • 要么在Jenkins的Git仓库URL后面加参数:https://your-token@your-gitlab-domain/your/repo.git?http.sslVerify=false
  • 要么在任务的执行shell步骤里先跑这条命令:
    git config --global http.sslVerify false
    

⚠️ 划重点:这个方法会关闭所有Git操作的SSL验证,有安全风险,测试完立刻改回来!

2. 正规解法:把GitLab的CA证书导入服务器信任存储

这是生产环境推荐的做法,步骤很清晰:

  1. 下载GitLab的SSL证书:在Jenkins服务器上执行命令,把GitLab证书存成PEM格式:
    openssl s_client -showcerts -connect your-gitlab-domain:443 </dev/null 2>/dev/null | openssl x509 -outform PEM > gitlab.crt
    
    记得把your-gitlab-domain换成你实际的GitLab域名。
  2. 复制证书到系统CA目录:
    cp gitlab.crt /etc/ssl/certs/
    
  3. 更新CA证书缓存:
    • Debian/Ubuntu系统用这条:
      update-ca-certificates
      
    • RHEL/CentOS系统用这条:
      update-ca-trust extract
      
  4. 重启Jenkins服务:让新的证书配置生效
    systemctl restart jenkins
    

3. 在Jenkins Git插件里单独配置证书

不想修改服务器全局CA存储的话,也可以在Jenkins插件里单独设置:

  1. 进入Jenkins「全局系统配置」页面
  2. 找到「Git」配置区,点击「Add」按钮,选择「Configure Git plugin to use a specific SSL certificate」
  3. 上传你刚才下载的gitlab.crt文件,保存配置
  4. 重启Jenkins后再测试拉取仓库

4. 检查Jenkins运行用户的Git配置

有时候Jenkins用jenkins用户运行,全局Git配置可能没生效到这个用户,你可以切换到jenkins用户单独配置:

su - jenkins -c "git config --global http.sslCAInfo /etc/ssl/certs/gitlab.crt"

这样Jenkins拉代码时就会用指定的CA证书验证GitLab服务器了。


最后提个醒:生产环境一定要用正规的证书导入方法,别图省事关验证;如果是GitLab的证书过期了,记得先更新GitLab的证书再操作。

内容的提问来源于stack exchange,提问作者Abhilash Reddy Bommareddy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 05:11:27