我已经在谷歌搜索中阅读了这里和外面的所有参考文献,但无法使用CA签名的证书访问我的注册表。以下是我的资料:
Apache代理(尝试了各种配置,但都对docker没有任何影响):
监听dockerrepo.xxxx.xxxx.xxxx。网址:5000 https
服务器名dockerrepo.xxxx.xxxx.xxxxx.com
SSL发动机打开
SSL证书文件/etc/httpd/certs/DockerRepoCAKeyCert.crt
SSLCA证书文件/etc/httpd/certs/DockerRepoCAKeyCert.crt
SSLCertificateKeyFile/etc/httpd/certs/DockerRepoCAKeyCert.crt
SSLCipherSuite AES128-SHA、AES256-SHA、AES128-GCM-SHA256、AES256/GCM-SHA384
SSL协议全部-SSLv3-SSLv2-TLSv1
Header always set "Docker-Distribution-Api-Version" "registry/2.0"
Header onsuccess set "Docker-Distribution-Api-Version" "registry/2.0"
RequestHeader set X-Forwarded-Proto "https"
ProxyPreserveHost on
ProxyPass /v2 http://127.0.0.1:5000/v2
ProxyPassReverse /v2 http://127.0.0.1:5000/v2
SSL发动机打开
SSL证书文件/etc/httpd/certs/DockerRepoCAKeyCert.crt
SSLCA证书文件/etc/httpd/certs/DockerRepoCAKeyCert.crt
SSLCertificateKeyFile/etc/httpd/certs/DockerRepoCAKeyCert.crt
SSLCipherSuite AES128-SHA、AES256-SHA、AES128-GCM-SHA256、AES256/GCM-SHA384
SSL协议全部-SSLv3-SSLv2-TLSv1
标题始终设置为“Docker Distribution Api Version”“registry/2.0”
成功设置的标题“Docker Distribution Api Version”“registry/2.0”
RequestHeader设置X-Forwarded-Proto“https”
上的ProxyPreserveHost
代理通行证/v2http://127.0.0.1:5000/v2
ProxyPassReverse/v2http://127.0.0.1:5000/v2
我启动注册表:
prod=注册表
版本=2.1.1
docker加载--input/home/docker/docker_${prod}-${ver}.tar
docker运行-d--privilege=true-e GUNICORN_OPTS=“[--preload]”-p 127.0.0.1:5000:5000--restart=always-v/home/docker/certs:/ce
rts-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/DockerRepoCACert。crt-e REGISTRY_HTTP_TLS_KEY=/certs/客户端私钥无密码短语
.pem-v/home/docker/prodRepo/data:/tmp/registry dev--命名docker注册表${prod}:${ver}
注册表和apache启动良好。当我推的时候,我得到了这个:
[root@dockerrepodockerrepo:5000]#docker push dockerrepo.xxxxx.xxxxx.com:5000/注册表:2.1.1
推送引用了一个存储库[dockerrepo.internal.acp.arris.com:5000/registry](len:1)
无法ping注册表终结点
https://dockerrepo.xxxxx.xxxxx.xxxxx.com:5000/v0/
v2 ping尝试失败,错误为:Get https://dockerrepo.xxxx.xxxx.xxxx。com:5000/v2/:x509:证书签名人
未知权限
v1 ping尝试失败,错误为:Get https://dockerrepo.xxxx.xxxxx.xxxxx。com:5000/v1/_ping:x509:由未知授权机构签名的证书
我尝试过将域、中间/子证书和根证书组合在一起,但我似乎无法实现这一点。我怀疑我在做傻事,但我看不出是什么。感谢您的帮助。
检查后,我意识到我没有将证书添加到CA信任中。完成此操作后,我现在得到以下错误:
[root@dockerrepo锚点]#docker push dockerrepo.xxxxx.xxxxx.com:5000/registry:2.1.1
推送引用存储库[dockerrepo.xxxxx.xxxxx.com:5000/registry](长度:1)
1e847b14150e:缓冲到磁盘
接收到意外的HTTP状态:502代理错误