Docker container providing automatic TLS webservers in IPv6 networks
Dockerfile | ||
entrypoint.sh | ||
README.md |
This container provides fully automated SSL containers in IPv6 networks
Requirements
You need to have docker configured to use IPv6. The following code can be placed in /etc/docker/daemon.json:
{
"ipv6": true,
"fixed-cidr-v6": "2001:db8::/64"
}
You need to replace "2001:db8::/64" with your own IPv6 network.
Read more about enabling IPv6 in docker.
How it works
IPv6 addresses are globally reachable, so IPv6 based containers can be reached from anywhere in the world.
This container uses the domain has-a.name, which gives a name to every IPv6 address.
Checkout how has-a.name works.
How to use
Start the container and use the logs to gets its domain name:
id=$(docker run -d ungleich/nginx-letsencrypt-ipv6)
docker logs ${id} 2>/dev/null | grep "^Getting certificate"
Getting certificate for 2a0a-e5c1-0111-0777-0000-0242-ac11-0004.has-a.name
With this information, you can now connect to your container:
% curl https://2a0a-e5c1-0111-0777-0000-0242-ac11-0004.has-a.name
Welcome to 2a0a-e5c1-0111-0777-0000-0242-ac11-0004.has-a.name running with IPv6+LetsEncrypt
How to extend it
TBD