由於業務需要,搭建一個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地址的解析,如果有更好的解決方法,可以在評論里回復下,感謝。