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

Docker登录Sonatype Nexus失败,证书验证问题求助

解决Docker自签名证书登录失败问题

问题核心

你遇到的错误根源有两个:一是仓库证书仅依赖旧版Common Name(CN)字段,未配置SANs(主题备用名称),这是新版TLS验证的强制要求;二是你存放证书的目录名拼写错误(nexus.connect.ro应为nexus.connex.ro)。

修复步骤

1. 修正证书存放目录

先修正目录拼写错误,确保证书路径正确:

# 删除错误目录(若存在)
rm -rf /etc/docker/certs.d/nexus.connect.ro
# 创建正确的证书目录
mkdir -p /etc/docker/certs.d/nexus.connex.ro
# 将自签名.crt证书移入正确目录
cp your-cert-file.crt /etc/docker/certs.d/nexus.connex.ro/

2. 重新生成带SANs的自签名证书(彻底解决)

如果有权限重新生成仓库证书,务必添加SANs字段,这是合规的长期解决方案。示例操作:

  1. 创建openssl.cnf配置文件:
[req]
default_bits = 2048
prompt = no
default_md = sha256
distinguished_name = dn
req_extensions = req_ext

[dn]
C = CN
ST = 你的省份
L = 你的城市
O = 你的组织
OU = 你的部门
CN = nexus.connex.ro

[req_ext]
subjectAltName = @alt_names

[alt_names]
DNS.1 = nexus.connex.ro
# 若仓库需IP访问,可添加:IP.1 = 仓库IP地址
  1. 生成新证书和密钥:
openssl req -new -x509 -days 3650 -keyout nexus.key -out nexus.crt -config openssl.cnf
  1. 将新生成的nexus.crt替换到/etc/docker/certs.d/nexus.connex.ro/目录,同时在Nexus仓库后台更新证书和密钥。

3. 临时绕过验证(仅测试环境用)

如果暂时无法重新生成证书,可强制Docker跳过该仓库的TLS验证:
修改/etc/docker/daemon.json(确保配置正确):

{
  "insecure-registries": ["nexus.connex.ro:8063"]
}

重启Docker服务:

systemctl daemon-reload
systemctl restart docker

⚠️ 注意:此方法会完全跳过TLS验证,存在安全风险,禁止用于生产环境。

4. 验证修复效果

重启Docker后,尝试登录仓库:

docker login nexus.connex.ro:8063

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 23:38:10