x509:证书适用于* .xyz.net,而不是docker.abc.xyz.net

我正在尝试login到公司的私人docker存储库。 当我尝试login时:

docker login docker.abc.xyz.net 

它只返回这个错误:

 Error response from daemon: Get https://docker.abc.xyz.net/v1/users/: x509: certificate is valid for *.xyz.net, xyg.net, not docker.abc.xyz.net 

我们有一个ca.cert ,我已经放在以下位置:

 /Users/myName/etc/docker/certs.d/docker.abc.xyz.net/ca.cert 

我也试过把它放在这里:

 /private/etc/docker/certs.d/docker.abc.xyz.net/ca.cert 

最后使用这个命令尝试获取cert的keychain访问权限:

 sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ca.crt 

我甚至给了完全访问证书,看看是否会被拿起。 我已经尝试重新启动泊坞窗,但没有任何东西是接受我的证书。 有没有其他人有任何想法可能会阻止在Docker Mac上login尝试?

 -------------- Certificate: Data: Version: 3 (0x2) Serial Number: 6c:ac:dd:00:bf:96:38:c3 Signature Algorithm: sha256WithRSAEncryption Issuer: CN=ON DWCC Unclass Testing CA-1 Validity Not Before: Jun 6 19:40:49 2016 GMT Not After : Jun 6 19:40:49 2018 GMT Subject: C=US, O=Navy, OU=ONI, CN=docker.abc.xyz.net Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (2048 bit) Modulus (2048 bit): Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Subject Key Identifier: X509v3 Basic Constraints: critical CA:FALSE X509v3 Authority Key Identifier: keyid: X509v3 Key Usage: critical Digital Signature, Key Encipherment X509v3 Extended Key Usage: TLS Web Server Authentication, TLS Web Client Authentication X509v3 Subject Alternative Name: DNS:docker.abc.xyz.net Signature Algorithm: sha256WithRSAEncryption 

这实际上是正确的,符合标准的行为。 *.xyz.net通配符证书对于abc.xyz.netdocker.xyz.net有效,但不适docker.abc.xyz.net

引用直接针对这个话题的问题的答案,依次引用RFC 2818 :

匹配是使用RFC2459指定的匹配规则来执行的 。 如果证书中存在给定types的多个身份(例如,多个dNSName名称,则任何一个集合中的匹配被认为是可接受的)。名称可以包含通配符* ,其被认为匹配任何单个域名组件或组件片段。 例如, *.a.comfoo.a.com匹配,但不匹配bar.foo.a.comf*.comfoo.com匹配,但不是bar.com


考虑将一个适当的SubjectAltName添加到您的证书,如果你不能完全重新生成它。