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

GitLab Auto DevOps登录容器注册表时遇x509未知权威证书错误

解决GitLab Auto DevOps构建时的证书信任问题

这个错误的核心原因很明确:你的物理机已经导入了GitLab容器注册表的自签名证书,所以能正常登录,但执行Auto DevOps构建的GitLab Runner所在环境(不管是Docker容器还是物理机)并没有信任这个证书,导致Docker在和注册表通信时验证证书失败。

下面分两种最常见的Runner部署场景给出解决方案:

场景1:GitLab Runner以Docker容器方式运行

  1. 先找到你的GitLab Runner配置目录(默认是宿主机的/etc/gitlab-runner),在里面创建certs子目录(如果还没有的话):
    mkdir -p /etc/gitlab-runner/certs
    
  2. 将你的注册表证书文件(比如myregistry.com.crt)拷贝到这个certs目录里,注意证书文件名要去掉端口号——Docker会自动匹配域名对应的证书,所以文件名应该是myregistry.com.crt而不是myregistry.com:5000.crt。
  3. 重启GitLab Runner容器,让它加载新的证书配置:
    docker restart gitlab-runner
    

场景2:GitLab Runner直接安装在物理机上

这种情况下需要同时配置Docker的证书信任和重启相关服务:

  1. 在物理机上创建Docker的证书目录,对应你的注册表地址:
    mkdir -p /etc/docker/certs.d/myregistry.com:5000
    
  2. 将你的自签名证书拷贝到这个目录,并重命名为ca.crt:
    cp /path/to/your/registry-cert.crt /etc/docker/certs.d/myregistry.com:5000/ca.crt
    
  3. 重启Docker服务,让它读取新的证书信任列表:
    systemctl restart docker
    
  4. 最后重启GitLab Runner服务,确保它使用更新后的Docker环境:
    systemctl restart gitlab-runner
    

验证配置是否生效

在Runner所在的环境(容器或物理机)里手动执行登录命令:

docker login myregistry.com:5000

如果能成功登录,说明证书信任配置已经生效,此时再重新触发Auto DevOps构建应该就能正常运行了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:52:25