由于业务需要,搭建一个harbor服务器,但是域名申请又要等段时间,只能通过IP地址访问,本文仅对这次搭建过种出现问题记录
Q1、通过docker login登录harbor时报错:
1 Error response from daemon: Get https://xx.xx.xx.xx/v2/: x509: cannot validate certificate for xx.xx.xx.xx because it doesn't contain any IP SANs
解决: 创建ssl证书时,域名换为IP地址,需要把IP地址xx.xx.xx.xx写到证书里。
# 创建ca时,根据提示输入 IP地址 openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 365 -out ca.crt openssl req -newkey rsa:4096 -nodes -sha256 -keyout server.key -out server.csr # 把IP地址写入到文件中 echo subjectAltName = IP:xx.xx.xx.xx > extfile.cnf # 生成 cr openssl x509 -req -days 365 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -extfile extfile.cnf -out server.crt # docker 加载证书 mkdir -p /etc/docker/certs.d/xx.xx.xx.xx cp server.key /etc/docker/certs.d/xx.xx.xx.xx/ cp server.crt /etc/docker/certs.d/xx.xx.xx.xx/ update-ca-trust systemctl restart docker
Q2、通过公网访问harbor时,报错“no such host”: 而且请求的URL里会 重复一个端口号
Error response from daemon: Get https://xx.xx.xx.xx:xxxx/v2/: Get https://xx.xx.xx.xx:xxxxx:xxxxx/service/token?account=admin&client_id=docker&offline_token=true&service=harbor-registry: dial tcp: lookup xx.xx.xx.xx:xxxx: no such host
解决: 很无奈的一种方式,强制在域名解析文件/etc/hosts加添加IP地址对IP地址的解析,如果有更好的解决方法,可以在评论里回复下,感谢。