docker login x509: cannot validate certificate for because it doesn‘t contain any IP SANs

本文介绍了解决docker login私有Harbor仓库时遇到的证书验证错误的方法。通过正确配置subjectAltName并重新生成证书,确保能够成功登录Harbor仓库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

docker login 私有harbor仓库时,报错,如下:

Error response from daemon: Get "https://x.x.x.x:443/v2/": x509: cannot validate certificate for x.x.x.x because it doesn't contain any IP SANs

SAN 是 subjectAltName 的缩写。

我们在生成证书的时候未指定这项的配置或者指定错误。参考下面两个链接去生成的证书:

Configure HTTPS Access to Harbor

 docker-repository-certs

其中有一个配置为:

cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names

[alt_names]
DNS.1=yourdomain.com
DNS.2=yourdomain
DNS.3=hostname
EOF

如果我们配置不是域名,而是直接写的IP地址,则应该是如下的方式配置

subjectAltName = IP:x.x.x.x

重新生成证书,重新执行harbor的安装运行操作:

./prepare && ./install.sh

然后运行一个获取证书的程序即可How can I fetch a certificate from a URL?

执行docker login x.x.x.x:443

如果出现

Authenticating with existing credentials...
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

表明登录成功了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值