This
docker run -d -p 443:5000 --name registry --restart=always \
-v $(pwd)/var/lib/registry:/var/lib/registry \
-v $(pwd)/auth:/auth \
-e REGISTRY_HTTP_ADDR=0.0.0.0:5000 \
-e REGISTRY_HTTP_HOST=https://docker.example.com \
-e REGISTRY_HTTP_TLS_LETSENCRYPT_CACHEFILE=/etc/docker/registry/letsencrypt.json \
-e REGISTRY_HTTP_TLS_LETSENCRYPT_EMAIL=admin@example.com \
-e REGISTRY_AUTH_HTPASSWD_REALM=example \
-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
registry:2
produces this (in the logs)
2018/03/10 22:29:15 [INFO] acme: Registering account for admin@example.com
time="2018-03-10T22:29:16Z" level=info msg="listening on [::]:5000, tls" go.version=go1.7.6 instance.id=46277ada-99d7-458e-aa24-7ef9b9009f86 version=v2.6.2
2018/03/10 22:29:44 [INFO][docker.example.com] acme: Obtaining bundled SAN certificate
2018/03/10 22:29:45 [INFO][docker.example.com] acme: Could not find solver for: dns-01
2018/03/10 22:29:45 [INFO][docker.example.com] acme: Could not find solver for: http-01
2018/03/10 22:29:45 http: TLS handshake error from 120.17.222.195:41255: map[docker.example.com:[docker.example.com] acme: Could not determine solvers]
This is caused by letsencrypt disabling the tls-sni-01 challenge which uses port 443. It falls back to the http-01 challenge which uses port 80, and the dns-01 challenge which uses port 53, but the registry accepts connections on only one port.
More information here: https://community.letsencrypt.org/t/2018-01-11-update-regarding-acme-tls-sni-and-shared-hosting-infrastructure/50188.
Essentially, this means the bundled letsencrypt support is completely useless now. It should either be completely removed from registry or support http-01 needs to be added.
This
produces this (in the logs)
This is caused by letsencrypt disabling the
tls-sni-01challenge which uses port 443. It falls back to thehttp-01challenge which uses port 80, and thedns-01challenge which uses port 53, but the registry accepts connections on only one port.More information here: https://community.letsencrypt.org/t/2018-01-11-update-regarding-acme-tls-sni-and-shared-hosting-infrastructure/50188.
Essentially, this means the bundled letsencrypt support is completely useless now. It should either be completely removed from
registryor supporthttp-01needs to be added.