Я пытаюсь настроить частный реестр докеров на основе документации 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, экспериментальная).
Насколько я помню порядок от того, как вы объедините свою сертификацию, важно.
попробуйте подход снизу вверх:
cat domain.crt intermediate-certificates.pem ca.pem > chained-domain.crt