首页/云/Docker 容器速查/x509 / TLS handshake 镜像拉取报错
容器排障52 条

x509 / TLS handshake 镜像拉取报错

拉镜像报证书或握手错误:企业镜像源证书链不受信、中间设备拦截 HTTPS、私有仓库自签证书域名不匹配;先验证证书再决定收敛方式。

Docker 容器速查云更新于 2026-10-13

证书与握手错误

拉镜像时报证书或握手错误:企业镜像源的证书链不受信、中间设备拦截了加密连接、私有仓库自签证书域名不匹配。先验证证书本身,再决定用什么方式收敛。

基本信息

诊断用交互式工具查看证书链与域名匹配情况
内网可控场景按仓库地址配置不校验的例外
对外场景修证书链,不要降低校验
自签证书把证书放到约定目录后重启守护进程
适用场景企业内网镜像源与私有仓库

典型使用场景

  • 内网镜像源换证书后拉取失败
  • 公司网络里带审计设备导致握手异常
  • 私有仓库自签证书域名不匹配时定位
  • 新环境首次拉取镜像就报证书错误
  • 评估是否可以用不校验方式临时绕过

查看证书与复现

查看证书与复现
openssl s_client -connect registry.example.com:443 \
  -servername registry.example.com </dev/null 2>/dev/null \
  | openssl x509 -noout -subject -issuer -dates     # 查看签发者与有效期
docker pull registry.example.com/ns/app:1.0         # 复现拉取报错

线索与处理方向

线索原因处理方向
证书链不受信缺少中间证书或根证书补齐证书链
域名不匹配签发域名与访问域名不同改用匹配的访问地址
握手被中断中间设备拦截或重签名装对审计链的根证书
仅内网失败内网证书未纳入信任按内网仓库规范配置
自签证书的规范做法是把对应证书放到约定目录后再重启守护进程。
跳过校验只是绕过检查,公网链路使用会引入镜像被替换的风险。
公司审计设备重签名证书时,装对审计链的根证书比关掉校验更正确。
证书有效期到期也会以握手失败的形式出现,排查时先看有效期。
同一台机器上不同仓库的证书信任配置互相独立,新增仓库时要单独核对。
排查时先用命令行工具确认证书本身是否正常,再看守护进程侧的信任配置,顺序清晰能少绕路。

易错点

  • 跳过校验只是绕过检查,公网链路使用会引入镜像被替换的风险
  • 证书有效期到期也表现为握手失败,排查时先看有效期
  • 只补根证书不补中间证书,证书链仍然不完整
  • 把审计设备的拦截当成证书本身问题,方向不对会反复调试

数据来源与参考

  • Docker 官方文档:Verify repository client with certificates(docs.docker.com)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌