Estou tentando configurar um registro de docker privado com base na documentação de https://docs.docker.com/registry/deploying/#running-a-domain-registry .
Estou usando o StartSSL como emissor de certificado, baixei seus crts intermediários e os combinei com meu certificado de cliente:
cd certs
cat sca.server3.crt ca.crt client.pem > client.crt
Depois de iniciar o registro com
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
o registro reclama sobre a incompatibilidade de chave privada/pública. No entanto, o mesmo certificado + chave privada funciona em algum outro site Apache. Eu não recebi esse erro antes de adicionar os crts intermediários ao client.crt
time="2016-07-18T11:34:19Z" level=fatal msg="crypto/tls: private key does not match public key"
Como o registro está sendo executado em uma intranet (não na Internet pública), não quero configurar um apache/nginx apenas para atuar como proxy.
Observação: estou usando o Docker Mac (Docker versão 1.12.0-rc4, build e4a0dbc, experimental).
Pelo que me lembro, a ordem de como você combina seus certificados é importante.
tente a abordagem de baixo para cima:
cat domain.crt intermediate-certificates.pem ca.pem > chained-domain.crt