Skip to content

Instantly share code, notes, and snippets.

@jchen42703
Last active August 25, 2021 18:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jchen42703/75aae3bf9059d22b3bdb643cb1103864 to your computer and use it in GitHub Desktop.
Save jchen42703/75aae3bf9059d22b3bdb643cb1103864 to your computer and use it in GitHub Desktop.
nginx docker ssl generation
# docker-compose.yml
services:
letsencrypt-nginx-container:
container_name: 'letsencrypt-nginx-container'
image: nginx:latest
ports:
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/conf.d/default.conf
networks:
- docker-network
networks:
docker-network:
driver: bridge
@jchen42703
Copy link
Author

jchen42703 commented Aug 25, 2021

Test with staging

sudo docker run -it --rm \
-v /docker-volumes/etc/letsencrypt:/etc/letsencrypt \
-v /docker-volumes/var/lib/letsencrypt:/var/lib/letsencrypt \
-v /docker/letsencrypt-docker-nginx/src/letsencrypt/letsencrypt-site:/data/letsencrypt \
-v "/docker-volumes/var/log/letsencrypt:/var/log/letsencrypt" \
certbot/certbot \
certonly --webroot \
--register-unsafely-without-email --agree-tos \
--webroot-path=/data/letsencrypt \
--staging \
-d {domain}

If that works, clean up staging artifacts with:

sudo rm -rf /docker-volumes/

Get the actual certs with:

sudo docker run -it --rm \
-v /docker-volumes/etc/letsencrypt:/etc/letsencrypt \
-v /docker-volumes/var/lib/letsencrypt:/var/lib/letsencrypt \
-v /docker/letsencrypt-docker-nginx/src/letsencrypt/letsencrypt-site:/data/letsencrypt \
-v "/docker-volumes/var/log/letsencrypt:/var/log/letsencrypt" \
certbot/certbot \
certonly --webroot \
--email youremail@domain.com --agree-tos --no-eff-email \
--webroot-path=/data/letsencrypt \
-d {domain}

Temp close the docker

cd /docker/letsencrypt-docker-nginx/src/letsencrypt
sudo docker-compose down

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment