Назад | Перейти на главную страницу

Частный реестр Docker (с сертификатом TLS)

Я пытаюсь настроить частный реестр докеров на основе документации 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