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

使用Kaniko构建镜像推送至Docker Registry时遇x509证书错误

解决Kaniko推送镜像至Docker Registry时的x509证书未知权威问题

问题场景

在自托管GitHub Runner上使用Kaniko executor构建镜像并推送至私有Docker Registry,执行以下步骤后触发证书验证错误:

执行步骤

  1. 配置Docker认证
    环境变量:DOCKER_CONFIG_JSON: ${{ secrets.DOCKER_CONFIG_JSON }}
    执行命令:

    mkdir -p ${{ github.workspace }}/.docker
    echo -n "$DOCKER_CONFIG_JSON" > ${{ github.workspace }}/.docker/config.json
    
  2. 构建并推送镜像
    执行命令:

    pwd
    ls -ltr
    docker run --rm \
    -v ${{ github.workspace }}:/workspace \
    -v `pwd`/.docker/config.json:/kaniko/.docker/config.json:ro \
    gcr.io/kaniko-project/executor:latest \
    --context=/workspace \
    --dockerfile=/workspace/alertmanager/Dockerfile \
    --destination=xyz/dsc/alertmanager:1.0
    

报错信息

错误检查推送权限 -- 请确保输入了正确的标签名称,并且已正确认证,然后重试:检查"xyz/abc/alertmanager:1.0"的推送权限失败:为xyz创建推送检查传输失败:Get "https://xyz/v2/": tls: 无法验证证书:x509: 由未知权威机构签名的证书

解决方案

方案1:挂载私有CA证书到Kaniko(推荐生产环境)

Kaniko默认只信任系统根CA,对于私有CA签发的Registry证书,需要将CA证书挂载到Kaniko的信任证书目录:

修改构建推送步骤的命令,添加CA证书挂载参数:

docker run --rm \
-v ${{ github.workspace }}:/workspace \
-v ${{ github.workspace }}/.docker/config.json:/kaniko/.docker/config.json:ro \
-v /path/to/your/ca-root.crt:/kaniko/ssl/certs/ca-root.crt:ro \
gcr.io/kaniko-project/executor:latest \
--context=/workspace \
--dockerfile=/workspace/alertmanager/Dockerfile \
--destination=xyz/dsc/alertmanager:1.0
  • 替换/path/to/your/ca-root.crt为自托管Runner上私有CA证书的实际路径;
  • 如果CA证书存储在GitHub Secrets中,可以先在步骤中写入文件再挂载:
    echo -n "${{ secrets.PRIVATE_CA_CRT }}" > ${{ github.workspace }}/ca-root.crt
    
    然后挂载路径改为${{ github.workspace }}/ca-root.crt:/kaniko/ssl/certs/ca-root.crt:ro

方案2:配置Docker跳过Registry证书验证(仅测试环境)

如果是测试场景,可以在Docker配置文件中标记目标Registry为不安全:
修改DOCKER_CONFIG_JSON对应的Secret内容,添加insecure-registries字段:

{
  "auths": {
    "xyz": {
      "auth": "base64编码的用户名密码"
    }
  },
  "insecure-registries": ["xyz"]
}

Kaniko会读取该配置,跳过对目标Registry的证书验证。

方案3:验证Registry地址与证书匹配

确认目标Registry地址xyz的拼写正确,且对应的证书确实由你的私有CA签发,避免因地址错误导致证书不匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 23:05:07