Nexus 私有 docker 拉取映像失败,并显示 x509:无法验证证书错误



我已经在CentOS-7.6上安装了Nexus-3.15.2-01,Nginx反向代理和SSL自签名证书配置为通过Https访问。 https访问在浏览器上工作正常。

Nexus Docker私有存储库https方法已激活。

从我的 docker 主机,当我尝试从我的 nexus 私有 docker 集线器服务器中提取 docker 映像时,它失败了,如下所示。

docker pull 101.102.103.104:5051/docker-image-14:1
Error response from daemon: Get https:// 101.102.103.104:5051/v2/: x509: cannot validate certificate for 101.102.103.104 because it doesn't contain any IP SANs

我已将我的 nexus.crt 文件移动到 docker 主机/etc/docker/certs.d/101.102.103.104:5051/位置。仍然不工作。

在 Docker 注册表上,必须使用 subjectAltName 编译证书,如文档中所述:

您可以尝试像这样创建证书:

openssl genrsa -aes256 -out ca-key.pem 4096
openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem
openssl genrsa -out server-key.pem 4096
openssl req -subj "/CN=101.102.103.104" -sha256 -new -key server-key.pem -out server.csr
echo subjectAltName = DNS:101.102.103.104,IP:101.102.103.104,IP:127.0.0.1 >> extfile.cnf
openssl x509 -req -days 365 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem -extfile extfile.cnf

然后,可以使用以下命令验证证书中是否存在使用者备用名称 (SAN(:

openssl x509 -in server-cert.pem -text -noout

现在再次尝试拉动。不要忘记将新证书放在/etc/docker/certs.d/101.102.103.104:5051/
如果在此之后您收到新错误
x509: certificate signed by unknown authority/etc/default/docker 中,您需要指定 docker 选项: DOCKER_OPTS="--insecure-registry 101.102.103.104:5051"

然后重新启动守护进程(如果您的用户不被允许启动 docker 服务,请添加 sudo(:

$ [sudo] service docker restart

最新更新