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

全新Debian机器上GitLab Runner连接官方镜像仓库出现x509证书未知颁发机构错误的求助

解决GitLab Runner拉取registry.gitlab.com镜像的x509证书错误

我来帮你搞定这个头疼的证书问题!你遇到的x509: certificate signed by unknown authority并不是GitLab仓库证书无效,而是你的Debian主机或GitLab Runner容器缺少验证证书所需的根CA文件,而且之前的配置可能没作用到正确的地方——先理清关键误区,再一步步解决:

先纠正配置误区

你在[runners.docker]里设置的tls_verify = false,是用来控制GitLab Runner和Docker守护进程之间的TLS验证的,和拉取镜像仓库的证书完全无关!这就是为啥改了也没用的核心原因之一。

分步解决步骤

1. 给Debian主机补全根证书

全新Debian系统默认可能没装完整的根证书套件,先在主机上执行这两行命令:

sudo apt update && sudo apt install -y ca-certificates
sudo update-ca-certificates

这会把所有主流可信CA的证书安装到系统里,Docker和Runner都会用到这些证书。

2. 确保Docker守护进程的配置生效

你已经在/etc/docker/daemon.json加了insecure-registries,但一定要完全重启Docker服务才能让配置生效,别只重启容器:

sudo systemctl stop docker
sudo systemctl start docker
# 验证配置是否加载成功
docker info | grep -A 5 "Insecure Registries"

如果输出里能看到registry.gitlab.com,说明这个配置已经生效了。

3. 让GitLab Runner容器用上主机的证书

如果你是用Docker方式安装的GitLab Runner,记得启动容器时把主机的根证书挂载进去,这样Runner才能用它验证仓库证书:
启动Runner容器时添加这个挂载参数:

-v /etc/ssl/certs/ca-certificates.crt:/etc/ssl/certs/ca-certificates.crt

如果是已经在运行的Runner,先停止容器,重新启动时加上这个参数就行。

4. 给Alpine镜像补证书(可选但有用)

你指定的job镜像是alpine:latest,Alpine默认的根证书包也不全,在你的CI脚本开头加两行,先装证书再执行任务:

apk add --no-cache ca-certificates
update-ca-certificates

最后验证

先在Debian主机手动拉取个GitLab仓库的镜像测试:

docker pull registry.gitlab.com/gitlab-org/gitlab-runner:latest

如果这一步能成功,再触发CI作业试试,应该就能解决证书错误了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.01 02:47:32