Harbor仓库开启https域名登陆报错问题

出现问题 Error response from daemon: Get “https://reg.hyx.com/v2/”: x509: certificate has expired or is not yet valid

[root@centos12 harbor]# docker login reg.hyx.com
Username: howei
Password: 
Error response from daemon: Get "https://reg.hyx.com/v2/": x509: certificate has expired or is not yet valid: current time 2021-09-07T15:37:01+08:00 is before 2021-09-07T15:25:54Z

网上看到办法很多都是说重新建立证书
总结了一下,最后测试成功使用域名登陆

创建证书就不多说了,harbor安装文章里都有
docker-compose stop
openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/reg.hyx.com.key -x509 -days 365 -out certs/reg.hyx.com.crt
cd harbor/
vim harbor.yml
./prepare 
./install.sh
以上操作就可以使用https访问harbor了

下来docker login reg.hyx.com登陆问题
cp /data/certs/reg.hyx.com.* /etc/docker/certs.d/reg.hyx.com/	##把上面生成的证书crt和key都给docker下放一份,注意路径
cp /data/certs/reg.hyx.com.crt /etc/docker/certs.d/reg.hyx.com/ca.crt 
##这样复制后/etc/docker/certs.d/reg.hyx.com/会有三个文件reg.hyx.com.crt、reg.hyx.com.key、ca。crt
systemctl restart docker.service
docker-compose down -v
./prepare
docker-compose up -d

操作完成后再登陆私有harbor域名就正常了

[root@centos12 harbor]# docker login reg.hyx.com
Username: howei
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

还有就是配置仓库地址可以设置多个地址

vim /etc/docker/daemon.json
{
  "registry-mirrors": ["https://reg.test.com"]	
}
多个地址配置如
{
  "registry-mirrors": ["https://7777777.mirror.aliyuncs.com"],
  "insecure-registries": ["reg.hyx.com"]
}

### 清单一:Harbor 登录报错解决方案 当遇到 Harbor 登录失败的情况时,可以从以下几个角度分析并解决问题: #### 1. **Docker 证书清理** 如果 Docker 的证书被意外清空或者配置不正确,可能会导致 Harbor 登录失败。可以通过重新启动 Docker 并恢复或重建证书文件来修复此问题[^1]。 ```bash sudo systemctl restart docker ``` 对于某些环境而言,还需要手动验证 `/etc/docker/certs.d` 下的相关证书是否存在以及是否匹配当前的 Harbor 配置。 --- #### 2. **HTTPSSSL 配置冲突** Harbor 默认支持 HTTPS 协议,但如果未正确设置 `ssl_cert` 属性,则会触发如下错误: > ERROR:root:Error: The protocol is https but attribute ssl_cert is not set 此时需要检查 Harbor配置文件 (`harbor.yml`) 中关于协议的部分,确保以下字段已正确定义[^3]: - 如果使用 HTTPS,请确认 `https://<your-harbor-domain>` 被启用,并提供有效的 SSL 证书路径。 - 若仅需测试阶段可临时切换至 HTTP 模式(注意生产环境中应避免这种做法),具体方法是在 `harbor.yml` 文件中禁用 HTTPS 设置。 --- #### 3. **客户端与服务器端交互异常** 在部分场景下,即使 Harbor 本身运行正常,但由于客户端未能信任自签名证书或其他网络原因,仍会出现登录失败的现象。以下是常见处理方式之一: - 使用 `docker logout` 命令清除现有凭证后再重试登录操作[^4]: ```bash docker logout <harbor-server-url> docker login <harbor-server-url> ``` 此外还需留意客户端操作系统的时间同步状况,因为时间偏差可能导致 TLS 握手失败。 --- #### 4. **镜像传输中的协议差异** 由于 Docker Registry 默认采用 HTTPS 进行通信,而私有仓库可能基于 HTTP 提供服务,因此两者间可能存在兼容性障碍。针对此类情况建议执行以下调整措施[^2]: - 修改 Harbor 安装脚本内的 hostname 参数; - 明确指定目标地址为可信域名而非 IP 地址形式; - 对于开发用途允许忽略安全警告 (例如通过编辑 dockerd 启动参数加入 --insecure-registry) ,不过该选项同样不适合作长期部署策略考虑。 --- 综上所述,解决 Harbor 登录报错通常涉及多个层面的工作,包括但不限于上述提到的各项要点。实际应用过程中应当依据具体情况逐一排查直至找到根本原因所在为止。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Howei__

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

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

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

打赏作者

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

抵扣说明:

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

余额充值