私有 Docker Registry(带有 TLS 证书)

私有 Docker Registry(带有 TLS 证书)

我正在尝试根据以下文档设置私人docker注册表https://docs.docker.com/registry/deploying/#running-a-domain-registry

我使用 StartSSL 作为证书颁发者,下载了他们的中间 crt 并将它们与我的客户端证书结合起来:

cd certs    
cat sca.server3.crt ca.crt client.pem  > client.crt

使用以下命令启动注册表

docker run --rm -p 5000:5000 --name registry -v `pwd`/certs:/certs -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/client.crt -e REGISTRY_HTTP_TLS_KEY=/certs/private.key registry:2

注册表抱怨私钥/公钥不匹配。但是,同样的证书 + 私钥在其他 Apache 站点中可以正常工作。在将中间 crt 添加到 client.crt 之前,我没有收到该错误

time="2016-07-18T11:34:19Z" level=fatal msg="crypto/tls: private key does not match public key"

由于注册表在内部网(而非公共互联网)内运行,因此我不想设置 apache/nginx 仅作为代理。

旁注:我正在使用 Docker Mac(Docker 版本 1.12.0-rc4,构建 e4a0dbc,实验性的)。

答案1

我记得命令如何组合你的证书非常重要。

尝试自下而上的方法:

cat domain.crt intermediate-certificates.pem ca.pem > chained-domain.crt

相关内容