栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

【docker login报错】x509: cannot validate certificate for IP地址 because it does not contain any IP SANs

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【docker login报错】x509: cannot validate certificate for IP地址 because it does not contain any IP SANs

原因

如果服务器名称是 IP 地址,还会检查证书的Subject Alternative Name(SAN),因此需要创建一个包含此名称的证书。
否则,docker login 时会报如下错误:

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

在证书中生成x509v3 Extensions。要将 extensions 添加到证书中,需要在签署证书时使用“-extensions”选项。

例:

#openssl ca -policy policy_anything -config  -out windows_server.crt -extensions some_ext -extfile some_extensions.txt -infiles cert_request.csr

重点在于【-extensions some_ext -extfile some_extensions.txt】这句。且前提是,已经在同一目录下创建了一个名为“some_extensions.txt”的文件,并且它具有 some_ext 扩展名。

为了实现自动化,可以在shell中写入如下代码,让其自动执行。

要点如下:

  • 本次需要的extensions类型是"v3_ca",内容是"subjectAltName = IP:ip地址",需要在生成csr之前作成此文件。
  • 在生成crt的语句中,需要加入"-extensions v3_ca -extfile /etc/cert/extfile.cnf"。
#!/bin/sh

if [ ! -d /etc/cert ] ; then
  mkdir -p /etc/cert
  touch /etc/cert/extfile.cnf
  cat>/etc/cert/extfile.cnf< 

签署证书后,检查扩展是否正确添加。

#openssl x509 -text -noout -in user-certificate.crt

...(略)
        X509v3 extensions:
            X509v3 Subject Alternative Name:
                IP Address:ip地址
...(略)
参考

构建docker私有仓库

当服务器名是IP地址时创建SSL证书

How to generate x509v3 Extensions in the End user certificate

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/882599.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号