harbor登录报错doesn‘t contain any IP SANs问题
说明:
我这里搭建的harbor 是带https 的,即是自签的证书
1.报错:
root@ubuntu1804:~# docker login 10.0.0.164 Username: admin Password: Error response from daemon: Get https://10.0.0.164/v2/: x509: cannot validate certificate for 10.0.0.164 because it doesnt contain any IP SANs
2.解决:
2.1 猜测一: 创建证书的时候没有加IP
但是我在生成证书的时候,-subj 里面就带了ip 了 ,我这里用的不是域名,应该不用写echo subjectAltName = IP:10.30.0.163 > extfile.cnf 这个文件吧?
HOST=10.0.0.164
touch /root/.rnd
openssl genrsa -out ${HARBOR_INSTALL}/harbor/certs/${HARBOR_KEY}
 
openssl req -x509 -new -nodes -key ${HARBOR_INSTALL}/harbor/certs/${HARBOR_KEY} -subj "/CN=$HOST" -days 7120 -out ${HARBOR_INSTALL}/harbor/certs/${HARBOR_CRT} 
后面为了检验就重新创建证书,但是发现还是报一样的
echo "1.创建私有CA: "
#一条语句实现创建私有CA和CA证书
openssl req -x509 -utf8 -newkey rsa:4096 -subj $SUBJ -keyout ${DIR}/ca.key -nodes -days $EXPIRE -out ${DIR}/ca.pem
echo "2.给服务器签发证书"
#一条语句实现创建服务器私钥和服务器证书申请文件
openssl req -utf8 -newkey rsa:4096 -nodes -keyout ${DIR}/server.key -subj "/CN=$DOMAIN_HOST" -out ${DIR}/server.csr
echo subjectAltName=DNS:$DOMAIN_HOST,IP:0.0.0.0 > /tmp/extfile.cnf
#ca 给服务器颁发证书
openssl x509 -req -days $EXPIRE -sha256 -in ${DIR}/server.csr -CA ${DIR}/ca.pem -CAkey ${DIR}/ca.key -CAcreateserial -out ${DIR}/server.crt  -extfile /tmp/extfile.cnf 
2.2 猜测二:因为harbor 是自己搭建,得在docker 的service 文件里面加个参数:
得信任10.0.0.163 ,才能往10.0.0.163 上面上传镜像 私有仓库中没有添加“–insecure-registry“导致docker login失败
root@harbor1:/apps/harbor/harbor/certs# vim /lib/systemd/system/docker.service ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry 10.0.0.163 --insecure-registry 10.0.0.164 root@harbor1:/apps/harbor/harbor/certs# systemctl daemon-reload root@harbor1:/apps/harbor/harbor/certs# systemctl restart docker #再登录就成功了 root@harbor1:/apps/harbor/harbor/certs# docker login 10.0.0.163 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
2.3 解决:
报错:harbor cannot validate certificate for 10.0.0.190 because it doesnt contain any IP SANs
在service 里面加不成功,可以在daemon.json 文件里面加
root@ubuntu1804:/apps/harbor/harbor/certs# vim /etc/docker/daemon.json 
{
          
   
        "registry-mirrors": ["https://9916w1ow.mirror.aliyuncs.com"],
        "insecure-registries": ["https://10.0.0.190"]
}
root@ubuntu1804:/apps/harbor/harbor/certs# vim /etc/docker/daemon.json 
root@ubuntu1804:/apps/harbor/harbor/certs# systemctl restart docker
root@ubuntu1804:/apps/harbor/harbor/certs# docker login 10.0.0.190
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
			          下一篇:
			            设计模式之单例模式的四种实现 
			          
			        