自建 harbor 证书问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
pydiff
V2EX    Kubernetes

自建 harbor 证书问题

  •  
  •   pydiff 2021-12-22 14:09:01 +08:00 2890 次点击
    这是一个创建于 1457 天前的主题,其中的信息可能已经有所发展或是发生改变。

    刚刚看到有人问 gcr.io 的镜像问题就想起来以前的没解决的问题。 就是我们自建 harbor 的时候,如果启用了 https,想要用域名访问的时候就要么用证书,要么在 deamon.json 中增加 insecurity 项。

    我之前是用 acme 申请的免费证书,直接在 nginx 上配置证书,如果我用命令 docker pull xxx.domian.com/image:latest拉取镜像的时候,会报 x509 错误,如: x509: certificate signed by unknown authority;如果我用 openssl 生成自签证书,想要正常用的话,也需要把证书手动复制到每台机器上 /etc/docker/cert.d目录下。

    而我看比如阿里云他们的镜像源也不需要配置证书就可以直接拉取了,还有我也见过公司合作的厂商也有些的 docker 仓库的域名也不需要特别配置就可以直接拉取,那么他们用的证书是什么样的证书,为啥可以直接通过 docker daemon 的验证,这种证书有免费的吗?

    因为我对这块也不熟,查了谷歌跟百度也没有找到答案,所以过来请教一下各位大佬。

    13 条回复    2021-12-26 20:17:49 +08:00
    southwolf
        1
    southwolf  
       2021-12-22 14:19:05 +08:00
    你先确认一下证书申请吧..如果是 ACME 搞的证书 绑好了域名应该不会有问题
    pydiff
        2
    pydiff  
    OP
       2021-12-22 14:23:06 +08:00
    @southwolf 证书没问题了,直接在页面上访问 harbor,证书也是显示正常的,就是用 docker 拉取镜像时报 x509 错误.同时这个证书用在给其他服务也是正常的
    47jm9ozp
        3
    47jm9ozp  
       2021-12-22 14:45:16 +08:00 via iPad
    没有配置中间证书
    hxsf
        4
    hxsf  
       2021-12-22 14:55:07 +08:00
    @pydiff #2 如果仅仅是 docker pull 报证书错的情况,可能是运行 docker 的那台机器上的根证书没更新 or 证书链有问题。
    一般来说,Linux 上根证书的包叫 ca-certificates , 可以使用包管理更新。然后用 update-ca-trust 命令更新。
    然后 docker pull 其实是发命令给 dockerd ,实际的 pull 动作是 dockerd 发起的,你可能还需要重启一下 dockerd 。
    pydiff
        5
    pydiff  
    OP
       2021-12-22 15:15:41 +08:00 via iPhone
    @ooxxcc 中间证书是啥,可以详细点吗
    pydiff
        6
    pydiff  
    OP
       2021-12-22 16:04:20 +08:00 via iPhone
    @ooxxcc 大佬,感谢,解决了,确实是中间证书问题,之前还困扰了好久,好奇别人怎么可以自己搞得不行的
    Illusionary
        7
    Illusionary  
       2021-12-22 16:05:15 +08:00
    harbor.yml 里面配置好就行了,没那么多乱七八糟
    https:
    port: 443
    certificate: /data/harbor/cert/google.com.pem
    private_key: /data/harbor/cert/google.com.key
    pydiff
        8
    pydiff  
    OP
       2021-12-22 16:06:58 +08:00 via iPhone
    @Illusionary 我之前这样配置也是不行的
    pydiff
        9
    pydiff  
    OP
       2021-12-22 16:18:43 +08:00
    @Illusionary 再问下,就是 harbor 能不能跟 nexus 一样,我代理 dockerhub 仓库的镜像不用加多一个仓库名,比如 nexus 就可以
    ` docker pull xxx.domain.com/redis:latest`,但是我目前用 harbor 就必须要加多一个项目名,比如:
    ` docker pull xxx.domain.com/proxy/library/redis:latest`,其中 proxy 就是我必须在 harbor 中必须要建的项目,还可以省略多一个个 library
    liuhan907
        10
    liuhan907  
       2021-12-22 20:55:27 +08:00 via Android
    @pydiff 我记得 harbor 不能直接代理,必须得前缀。所以我们后来换 Nexus 了
    stevenhawking
        11
    stevenhawking  
       2021-12-23 04:01:31 +08:00
    试下这个服务 t/822401
    pydiff
        12
    pydiff  
    OP
       2021-12-23 08:27:47 +08:00 via iPhone
    @stevenhawking ok ,我试试,谢谢哈
    ljf
        13
    ljf  
       2021-12-26 20:17:49 +08:00
    云服务商的 harbor 里面配置的证书,是通过公共机构签发的可信的证书,所以 docker 登陆和拉取的时候会自动信任,因为 ca 是可信机构。如果是自签的 harbor 证书,那么 ca 是不可信的,因此需要把 ca 证书加到每台客户端的 /etc/docker/cert.d 目录下。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5512 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 06:38 PVG 14:38 LAX 22:38 JFK 01:38
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86