docker harbor证书过期提示x509:certificate has expired or is not yet valid的错误

本文介绍了解决Harbor证书过期的具体步骤,包括在腾讯云或阿里云申请免费证书,更新harbor.cfg文件中的ssl_cert和ssl_cert_key路径,并重启docker-compose。

    网上有说法,一种是时间设置不对,正确设置时间即可。但是对证书真地过期了这种场景说明反而很少,碰到证书真的过期,可以到腾讯云或者阿里云上申请一个免费的一年期证书,替换掉即可。

    在docker harbor安装机器上,找到harbor.cfg文件,在我的机器上是在目录/usr/local/src/harbor下。找到ssl_cert和ssl_cert_key两个key,把路径配置成最新生成的crt和key文件

    ./prepare

    重启docker-compose

### 解决方案 当执行 `docker pull` 时,如果遇到错误提示 `x509: certificate has expired or is not yet valid`,这通常意味着 Docker 客户端或守护进程无法验证远程仓库的 SSL/TLS 证书的有效性。以下是详细的解决方法: #### 1. ### 检查系统时间和日期 确保主机的时间和日期设置正确,因为证书验证依赖于系统时间。如果时间不正确,可能导致证书被认为是过期或尚未生效。可以使用以下命令同步系统时间: ```bash sudo timedatectl set-ntp true ``` #### 2. ### 更新操作系统中的根证书库 有时操作系统的根证书可能已经过期,或者未能及时更新以支持最新的 TLS 证书。可以通过更新根证书库解决问题。 对于基于 RHEL/CentOS 的系统: ```bash sudo yum update -y ca-certificates sudo update-ca-trust ``` 对于基于 Debian/Ubuntu 的系统: ```bash sudo apt-get update sudo apt-get install --reinstall ca-certificates sudo update-ca-certificates ``` 这些命令会重新安装最新版本的根证书,并刷新信任链[^1]。 #### 3. ### 添加自定义 CA 证书Docker 配置 如果目标镜像是来自私有仓库,并且该仓库使用的是自签名证书,则需要将对应的 CA 证书导入到 Docker 的信任列表中。 步骤如下: - 创建目录结构用于存储 CA 证书: ```bash mkdir -p /etc/docker/certs.d/<your-registry-domain>:<port>/ ``` - 将 CA 证书复制到上述路径下的 `ca.crt` 文件名位置。例如: ```bash cp path/to/custom_ca.crt /etc/docker/certs.d/my-private-registry.example.com:5000/ca.crt ``` - 重启 Docker 服务使更改生效: ```bash sudo systemctl restart docker ``` #### 4. ### 禁用 TLS 验证(仅限开发环境) 作为一种权宜之计,在开发环境中可以禁用对特定仓库的 TLS 验证功能。通过修改 `/etc/docker/daemon.json` 文件实现此目的: ```json { "insecure-registries": ["my-private-registry.example.com:5000"] } ``` 完成配置后记得重启 Docker 服务: ```bash sudo systemctl restart docker ``` 需要注意的是,这种做法降低了通信的安全性,因此不应在生产环境中采用[^1]。 #### 5. ### 升级 Docker 版本 某些较老版本的 Docker 可能存在兼容性问题,尤其是面对现代加密标准时。建议升级到最新稳定版 Docker CE 或 EE 来获得更好的支持。具体过程可以根据官方文档指导进行,比如利用包管理器指定版本号安装: ```bash $ sudo yum list docker-ce --showduplicates | sort -r $ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io ``` 其中 `<VERSION_STRING>` 应替换为你希望安装的具体版本字符串。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值