其他机器上访问harbor机器,报错tls: failed to verify certificate: x509: cannot validate certificate for

文章讲述了在使用Docker时遇到TLS验证错误,因为服务器证书缺少IPSANs。通过分析,作者发现需要在docker客户端的daemon.json文件中添加insecure-registries配置,以允许对不安全的registry(如192.168.40.110和harbor)进行无证书登录。还提到在Kubernetes集群中的节点配置了harbor镜像仓库和hosts文件以解决问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

报错信息:
Error response from daemon: Get "https://192.168.40.110/v2/": tls: failed to verify certificate: x509: cannot validate certificate for 192.168.40.110 because it doesn't contain any IP SANs

复现:

[root@master1 ~]# docker login 192.168.40.110
Username: admin
Password: 
Error response from daemon: Get "https://192.168.40.110/v2/": tls: failed to verify certificate: x509: cannot validate certificate for 192.168.40.110 because it doesn't contain any IP SANs

这里我百度了一下,看到其中有部分是写到了docker的镜像配置文件daemon.json,同时有证书问题的指导,回想到harbor机器上配置了相关的免证书登录(insecure-registary

  • docker客户端如果配置中添加了insecure-registary配置,就不需要在docker 客户端配置上对应证书
  • 如果不配置就需要在/etc/docker/certs.d/目录中添加对应证书才能正常登录

harbor机器上的daemon.json配置如下:

[root@harbor harbor]# cat /etc/docker/daemon.json 
{  "registry-mirrors": ["https://rsbud4vc.mirror.aliyuncs.com","https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn","https://dockerhub.azk8s.cn","http://hub-mirror.c.163.com"],
"insecure-registries": ["192.168.40.110","harbor"]
}
You have new mail in /var/spool/mail/root
[root@harbor harbor]# 

查看其他k8s节点(其他机器),发现没有

[root@node1 ~]# cat /etc/docker/daemon.json 
{
 "registry-mirrors":["https://vh3bm52y.mirror.aliyuncs.com","https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn","https://dockerhub.azk8s.cn","http://hub-mirror.c.163.com"]
}
[root@master1 ~]# cat /etc/docker/daemon.json 
{
 "registry-mirrors":["https://vh3bm52y.mirror.aliyuncs.com","https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn","https://dockerhub.azk8s.cn","http://hub-mirror.c.163.com"]
}

复制,  "insecure-registries": ["192.168.40.110","harbor"]  将此免密配置加入到其他节点的daemon.json配置文件

如下:

编辑/创建 daemon.json文件
[root@master1 ~]# vim /etc/docker/daemon.json
{
 "registry-mirrors":["https://vh3bm52y.mirror.aliyuncs.com","https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn","https://dockerhub.azk8s.cn","http://hub-mirror.c.163.com"],
"insecure-registries": ["192.168.40.110","harbor"]
}
强制保存并退出vim编辑(ESC 然后:wq!  然后回车)


回到命令行后复制此命令,粘贴,回车
[root@master1 ~]# systemctl daemon-reload && systemctl restart docker && systemctl status docker  


配置hosts文件:

在每一个节点配置如下:主机ip +空格+ 主机名


[root@harbor harbor]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.40.180 180master
192.168.40.181 181node
192.168.40.182 182node
192.168.40.180 master1
192.168.40.181 node1
192.168.40.110 harbor

You have new mail in /var/spool/mail/root
[root@harbor harbor]#

主机ip和主机名

不清楚主机ip的 ip addr 查看 或 cat /etc/sysconfig/network-scripts/ifcfg-ens33
想修改主机名的:hostnamectl set-hostname node1 && bash

[root@harbor harbor]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.40.110
NETMASK=255.255.255.0
GATEWAY=192.168.40.2
DNS1=114.114.114.114
ZONE=public

以上均配置完成后,重新在其他的节点登录harbor

[root@master1 ~]# docker login 192.168.40.110
Username: admin
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
[root@master1 ~]# 

这里密码是拉建harbor时,最原始的密码和登录名

用户名:admin

密码:Harbor12345

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无碍-心态而已

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值