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

Harbor配置Cloudflare HTTPS后镜像推送证书无效问题排查

Harbor + Cloudflare代理:镜像推送证书无效问题排查方案

核心根因

网页访问正常是因为浏览器默认信任Cloudflare的边缘证书链,但Docker客户端的证书信任逻辑与浏览器不同,或是Cloudflare代理配置和Harbor后端证书不匹配,导致镜像推送时证书验证失败。

具体排查与修复步骤

  • 确认Cloudflare代理模式
    确保DNS记录开启「完全代理(橙色云朵)」,而非仅DNS解析(灰色云朵)。若为仅DNS模式,Docker会直接连接Harbor后端,若后端证书不是对应公网域名的有效证书,必然触发报错。

  • 修复Docker客户端的证书信任链

    • 先执行curl -v https://<你的Harbor域名>测试SSL连接,若输出中出现证书不信任提示,说明本地未信任Cloudflare的根证书。
    • 解决方式二选一:
      1. 把Cloudflare的根证书添加到系统信任存储:Linux可复制证书到/usr/local/share/ca-certificates/后执行update-ca-certificates;Windows通过证书管理器导入;Mac用钥匙串访问添加,完成后重启Docker服务。
      2. 手动配置Docker:在/etc/docker/certs.d/<你的Harbor域名>/目录下创建ca.crt文件,粘贴Cloudflare根证书内容,无需重启Docker即可生效。
  • 检查Harbor后端证书配置

    • 若Harbor用的是自签名/私有CA证书,而Cloudflare用自身边缘证书,需确认Harbor配置文件harbor.yml中certificate和private_key指向的证书,是否与Cloudflare代理的域名完全匹配。更稳妥的方式是使用Cloudflare颁发的「源证书」部署到Harbor,确保后端证书与代理域名一致。
    • 证书调整后重启Harbor:docker-compose down && docker-compose up -d
  • 清理Docker的不安全注册表配置
    若之前测试时给/etc/docker/daemon.json添加过insecure-registries项,请移除该配置并重启Docker服务,否则会干扰证书验证逻辑,导致报错混淆。

  • 区分代理与后端问题
    修改本地hosts文件,把Harbor域名指向其公网IP,直接推送镜像测试:

    • 若仍报错,说明Harbor自身证书配置有问题,需重新检查harbor.yml及证书文件的有效性。
    • 若推送正常,说明问题仅出在Cloudflare代理与Docker客户端的证书信任环节,按前述信任证书的方法修复即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 14:58:15