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

JCR登录报错:remote error: tls: unrecognized name 求助

解决Docker登录JCR仓库的TLS认证错误

先看你遇到的错误:

docker login -u user -p pass123* 10.0.2.103:8082
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Error response from daemon: Get "https://localhost:port/v2/": remote error: tls: unrecognized name

核心问题有两个:一是Docker默认强制HTTPS访问私有仓库,二是请求被转发到localhost后,TLS证书域名不匹配。按以下步骤排查:

1. 把JCR仓库加入Docker的不安全列表

如果你的JCR是HTTP服务(未配置HTTPS),Docker会拒绝访问,需要手动添加例外:

  • 编辑Linux下的/etc/docker/daemon.json(Windows/macOS在Docker Desktop的「设置」→「Docker Engine」里编辑)
  • 写入配置:
    {
      "insecure-registries": ["10.0.2.103:8082"]
    }
    
  • 重启Docker服务:Linux执行sudo systemctl restart docker,Windows/macOS直接在Docker Desktop里点重启按钮。

2. 修正反向代理或登录地址

错误里出现localhost:port,说明反向代理把请求转发到了本地,但证书的域名不是localhost,导致TLS验证失败:

  • 检查反向代理配置,确保转发目标是10.0.2.103:8082,且代理的TLS证书要包含你访问仓库的IP/域名(比如10.0.2.103)
  • 如果不用代理,直接用仓库IP登录,同时按提示用--password-stdin避免明文输密码:
    echo "pass123*" | docker login -u user --password-stdin 10.0.2.103:8082
    

3. 验证JCR仓库是否正常运行

先跳过Docker,直接用curl测试仓库连通性:

curl http://10.0.2.103:8082/v2/

如果返回{"errors":[{"code":"UNAUTHORIZED","message":"authentication required","detail":null}]},说明仓库服务没问题;如果连不上,先检查JCR容器的端口映射、运行状态,确保8082端口能正常访问。

4. 若用HTTPS,检查证书配置

如果JCR配了HTTPS,必须满足:

  • 证书的CN或SAN字段包含10.0.2.103(或者你用来访问仓库的域名)
  • 把CA证书放到Docker的信任目录:Linux下是/etc/docker/certs.d/10.0.2.103:8082/ca.crt,Windows/macOS需要导入系统证书库。

内容的提问来源于stack exchange,提问作者Abhishek Chhabra

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 20:55:24