草庐IT

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

guoguangwu 2024-07-28 原文

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

表明登录成功了

有关docker login x509: cannot validate certificate for because it doesn‘t contain any IP SANs的更多相关文章

  1. ruby - 在 Ruby 上获取 OpenSSL::X509::CertificateError 嵌套 asn1 错误 - 2

    我有来自Apple的.p12文件,并尝试使用以下命令将其转换为.pem文件:opensslpkcs12-incert.p12-outapple_push_notification_development.pem-nodes-clcerts尝试创建新的OpenSSL::X509::Certificate对象时OpenSSL::X509::Certificate.new(File.read('apple_push_notification_development.pem'))我收到以下错误:OpenSSL::X509::CertificateError:nestedasn1errorfro

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

    dockerlogin私有harbor仓库时,报错,如下:Errorresponsefromdaemon:Get"https://x.x.x.x:443/v2/":x509:cannotvalidatecertificateforx.x.x.xbecauseitdoesn'tcontainanyIPSANsSAN是 subjectAltName的缩写。我们在生成证书的时候未指定这项的配置或者指定错误。参考下面两个链接去生成的证书:ConfigureHTTPSAccesstoHarbor docker-repository-certs其中有一个配置为:cat>v3.ext如果我们配置不是域名,而

  3. go - 如何将 *x509Certificate 更改为字节数组 - 2

    你好,我有类似这样的东西要从.p12keystore中读取funcread_keys()(interface{},*x509.Certificate){b,err:=ioutil.ReadFile("mystore.p12")iferr!=nil{fmt.Println(err)returnnil,nil}password:="pass"privk,pKey,err:=pkcs12.Decode(b,password)iferr!=nil{fmt.Println(err)}returnprivk,pKey}现在我需要将pKey更改为AES.cipher的字节数组,我不知道我是如何查看p

  4. go - 如果未提供证书,单元测试 tls.LoadX509KeyPair 将失败 - 2

    cert,err:=tls.LoadX509KeyPair(os.Getenv("CERT"),os.Getenv("KEY"))iferr!=nil{returnerr}我想为包含这段代码的函数编写单元测试。但是,我的测试环境永远不会有os.Getenv("CERT")/os.Getenv("KEY")中的任何内容。这使得代码(tls.LoadX509KeyPair())返回一个错误,这不允许我测试函数。我应该如何模拟/修改此代码段? 最佳答案 这通过为certFile和keyFile定义变量然后在测试环境中覆盖它们来实现。//.

  5. macos - Golang x509 无法在 Mac OS X 上加载系统根错误 - 2

    我在本地机器上调用api时出错。x509:无法加载系统根并且没有提供根去环境:GOARCH="amd64"GOBIN=""GOCHAR="6"GOEXE=""GOHOSTARCH="amd64"GOHOSTOS="darwin"GOOS="darwin"GOPATH="/usr/local/Cellar/go/1.3.3"GORACE=""GOROOT="/usr/local/Cellar/go/1.3.3/libexec"GOTOOLDIR="/usr/local/Cellar/go/1.3.3/libexec/pkg/tool/darwin_amd64"CC="clang"GOGC

  6. 来自 x509 证书的 golang 主题 DN - 2

    有什么简单的方法可以从x509证书中以字符串形式获取完整的主题DN(或颁发者DN)?我无法在pkix.Name中找到任何类似“.String()”的方法 最佳答案 解决方案(感谢同事):varoid=map[string]string{"2.5.4.3":"CN","2.5.4.4":"SN","2.5.4.5":"serialNumber","2.5.4.6":"C","2.5.4.7":"L","2.5.4.8":"ST","2.5.4.9":"streetAddress","2.5.4.10":"O","2.5.4.11":"

  7. go - 检查 X509 证书是否与 CertificateRequest (CSR) 匹配 - 2

    如何在Go中检查x509证书是否与CSR匹配(如果证书是基于特定CSR生成的)?我是否需要从CSR生成新证书并进行比较? 最佳答案 如果您的签名请求是DER格式,那么您可以使用标准库中的几个函数;首先解析CSR(https://golang.org/pkg/crypto/x509/#ParseCertificateRequest),然后解析证书(https://golang.org/pkg/crypto/x509/#ParseCertificate)。解析后,您可以比较公钥值。标准但重要的安全说明:请注意,这无论如何都不会验证证书。

  8. mysql - PostgreSQL pq 打开不成功 : x509: certificate signed by unknown authority - 2

    这段代码有什么问题?http://godoc.org/github.com/lib/pq*dbname-Thenameofthedatabasetoconnectto*user-Theusertosigninas*password-Theuser'spassword*host-Thehosttoconnectto.Valuesthatstartwith/areforunixdomainsockets.(defaultislocalhost)*port-Theporttobindto.(defaultis5432)*sslmode-WhetherornottouseSSL(default

  9. go - 以人类可读格式解码 X509 证书 - Golang - 2

    我有以下代码:packagemainimport("crypto/dsa""crypto/ecdsa""crypto/rsa""crypto/x509""encoding/pem""fmt")funcmain(){//Verifyingwithacustomlistofrootcertificates.constrootPEM=`-----BEGINCERTIFICATE-----MIIEBDCCAuygAwIBAgIDAjppMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYD

  10. 失败 : x509: failed to load system roots and no roots provided - 2

    gogetcode.google.com/p/go.net/websocket我正在尝试使用goget安装websocket但是,鉴于x509:failedtoloadsystemrootsandnorootsprovided错误。我是谷歌它:交叉编译需要禁用CGO,所以我exportCGO_ENABLED=0,但总是报错系统:osx10.9.1go版本:go1.2darwin/amd64去环境:GOARCH="amd64"GOBIN=""GOCHAR="6"GOEXE=""GOHOSTARCH="amd64"GOHOSTOS="darwin"GOOS="darwin"GOPATH="

随机推荐