我正在尝试登录公司的私人码头存储库。当我尝试登录时:
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
最后使用此命令尝试获取证书的密钥链访问权限:
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ca.crt
我甚至完全访问了证书,看看是否会收到证书。我也试过重启docker,但没有接受我的证书。有没有其他人有任何想法阻止Docker Mac上的登录尝试?
--------------
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
答案 0 :(得分:4)
这实际上是正确的,符合标准的行为。 *.xyz.net
通配符证书对abc.xyz.net
或docker.xyz.net
有效,但不对docker.abc.xyz.net
有效。
引用a question directly focused on this topic的答案,然后引用RFC 2818:
使用指定的匹配规则执行匹配 RFC2459。如果存在多个给定类型的标识 证书(例如,多个dNSName名称,任何一个匹配 该集合被认为是可接受的。)名称可能包含通配符 字符
*
,被认为与任何单个域名匹配 组件或组件片段。例如,*.a.com
匹配foo.a.com
但是 不是bar.foo.a.com
。f*.com
匹配foo.com
但不匹配bar.com
。
如果无法完全重新生成,请考虑在证书中添加适当的SubjectAltName。