You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker Registry自签名证书指纹不符问题排查及配置求助

Docker Registry自签名证书指纹不一致问题排查与解决

问题原因

  1. 证书路径配置错误:你通过OpenSSL生成的证书文件是docker-reg_pri.crt,但部署Registry容器时,环境变量REGISTRY_HTTP_TLS_CERTIFICATE指定的是/certs/docker-reg_pub.crt。如果服务器证书目录中不存在该文件,或该文件是其他无关证书,就会导致Registry加载错误的证书,出现指纹不一致的情况。
  2. 证书文件混淆:挂载的/docker/certificates目录中可能存在旧证书或错误命名的文件,Registry加载了错误的证书资源。

解决步骤

1. 核对服务器证书目录文件

先检查服务器证书目录中的文件,确认资源正确性:

ls -l /docker/certificates/

确保目录下存在你生成的docker-reg_pri.crt(证书文件)和docker-reg_pri.key(私钥文件),且无其他混淆的证书文件。

2. 修正Registry容器配置

停止并删除当前运行的Registry容器:

sudo docker stop registry
sudo docker rm registry

重新启动容器,修正证书路径的环境变量(将证书路径改为实际生成的docker-reg_pri.crt):

sudo docker run -d \
   --restart=always \
   --name registry \
   -v "/docker/data:/var/lib/registry" \
   -v "/docker/certificates:/certs" \
   -e REGISTRY_HTTP_ADDR=0.0.0.0:443 \
   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/docker-reg_pri.crt \
   -e REGISTRY_HTTP_TLS_KEY=/certs/docker-reg_pri.key \
   -p 443:443 registry:2

3. 验证证书加载情况

查看容器日志,确认无TLS相关错误:

sudo docker logs registry

在Windows客户端重新访问https://server/v2/,导出浏览器中的证书,与服务器上的docker-reg_pri.crt对比指纹,确认两者一致。

4. 配置Windows客户端信任证书(可选)

为避免Docker客户端拉取镜像时出现证书不信任错误,将自签名证书导入Windows信任存储:

  • 将服务器上的docker-reg_pri.crt复制到Windows客户端
  • 双击证书文件,选择安装证书
  • 选择本地计算机,点击下一步
  • 选择将所有证书放入下列存储,点击浏览,选择受信任的根证书颁发机构
  • 完成安装后,重启Docker服务和浏览器

内容的提问来源于stack exchange,提问作者blue shell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 01:52:51