harbor docker客户端登陆失败 X509:cannot validate certificate...

错误如下(博主开始使用的http形式,后来改为https,由于一开始使用的IP,后来生成证书时采用的是域名,没有修改harbor中的hostname配置导致以下错误):

iverson@worker:/etc/docker/certs.d/gerrit.backup.com$ sudo docker login gerrit.backup.com
Username: amax
Password: 
Error response from daemon: Get https://gerrit.backup.com/v2/: Get https://192.168.121.100/service/token?account=amax&client_id=docker&offline_token=true&service=harbor-registry: x509: cannot validate certificate for 192.168.121.100 because it doesn't contain any IP SANs

此处给出排查思路:

这个错误的原因大多是因为证书相关原因。

首先删除所有签名,然后根据官方配置https文档操作一遍:

https://goharbor.io/docs/2.0.0/install-config/configure-https/

操作后首先检测本地是否可以docker login,如果本地失败,建议重新配置,若多次失败,删除已解压的harbor安装包重新解压部署;

本地docker login成功,异地失败:证书配置没问题,harbor配置有误,此时检测harbor的配置文件中hostname是否与证书生成是配置的域名一样;

/etc/hosts是否添加域名解析。

 

 

建议各位看官,在使用harbor时配置域名+https形式,这种形式配置的harbor在客户端想登陆使用时无需重启客户端

观点1:harbor异地命令行登陆只支持域名形式访问,ip形式也可以访问,需要配置异地客户端docker配置,配置后重启生效,此种形式不推荐,避免客户端有不方便重启的容器。

$ cat /etc/docker/daemon.json 
{
"insecure-registries": ["https://192.168.121.100"]
}

# 此形式配置后需要重启docker,如果添加多个仓库,#号为注释:
$ cat /etc/docker/daemon.json 
{
"insecure-registries": ["https://192.168.121.100,https://192.168.121.101"]
}

观点2:

https在docker中默认使用的,若harbor是http,则需要配置客户端使用http形式,配置后仍需重启,不推荐。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值