Docker--解决x509: certificate signed by unknown authority

原文网址:Docker--解决x509: certificate signed by unknown authority-CSDN博客

简介

本文介绍docker的x509: certificate signed by unknown authority问题的解决方案。

问题描述

在使用docker pull、docker login等命令时,报错了:

x509: certificate signed by unknown authority

原因分析

原因是:我搭建了个harbor私库,支持https方式访问,但这个SSL证书是我自己手动生成的。Docker 无法验证此SSL 证书,就导致了这个问题。

问题解决

将此证书加入客户服务器的信任列表中。

1.获取证书字符串

openssl s_client -showcerts -connect 192.168.5.193:15002 2>/dev/null | \
sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'

结果:(红框内的内容就是证书。)

2.将证书添加到信任列表

将上边红框内的内容复制下来,追加到/etc/ssl/certs/ca-certificates.crt文件即可。

3.重启docker

sudo service docker restart

### 解决 Docker 构建过程中的 x509: certificate signed by unknown authority 错误 当遇到 `x509: certificate signed by unknown authority` 错误时,通常是因为 Docker 客户端尝试连接到一个使用自签名证书的安全 HTTPS 服务器。为了使 Docker 能够信任该证书,可以采取以下几种方法之一。 #### 方法一:配置不安全注册表 对于特定的私有仓库,可以通过修改 `/etc/docker/daemon.json` 文件来允许 Docker 使用不安全的注册表: ```json { "insecure-registries": ["harbor.xxxx.com:1111"] } ``` 保存更改并重启 Docker 服务以应用设置: ```bash sudo systemctl restart docker ``` 这使得 Docker 可以忽略 SSL 验证并与指定的主机通信[^3]。 #### 方法二:导入 CA 证书至系统受信库 如果希望更安全地解决问题而不是禁用SSL验证,则应该获取用于签署目标站点证书的CA根证书,并将其添加到系统的可信证书存储中。具体操作取决于操作系统版本和类型;对于基于Debian/Ubuntu Linux发行版来说,可按照如下方式处理: 1. 将下载好的 `.crt` 或者 `.pem` 格式的 CA 证书放置于 `/usr/local/share/ca-certificates/` 目录下; 2. 运行命令更新本地证书数据库: ```bash sudo update-ca-certificates ``` 完成上述步骤之后再次启动 Docker 应能正常工作而不再提示此错误消息[^4]。 #### 方法三:通过环境变量临时绕过校验 作为最后的选择,在开发环境中测试期间也可以考虑利用环境变量的方式暂时跳过 TLS 检查(注意这不是推荐的做法)。可以在执行任何涉及网络请求的操作之前设置这些变量: ```bash export DOCKER_TLS_VERIFY="0" export DOCKER_HOST="tcp://your-docker-host:port" ``` 这种方法仅适用于短期解决方案或调试目的,生产环境下应始终启用完整的TLS保护措施[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

IT利刃出鞘

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

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

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

打赏作者

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

抵扣说明:

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

余额充值