From 5bcb1956a80b48591463cadf88cab583f2abb32f Mon Sep 17 00:00:00 2001 From: JrCs <90z7oey02@sneakemail.com> Date: Sun, 22 Nov 2015 13:20:29 +0100 Subject: [PATCH] Fix multi-domain support --- letsencrypt_service | 49 +++++++++++++++++++++++---------------------- 1 file changed, 25 insertions(+), 24 deletions(-) diff --git a/letsencrypt_service b/letsencrypt_service index 5ac5864..17c74d3 100755 --- a/letsencrypt_service +++ b/letsencrypt_service @@ -1,4 +1,5 @@ #!/bin/bash + DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" echo 'Waiting' @@ -6,9 +7,10 @@ sleep 10 # Wait some amount of time seconds_to_wait=3600 + while true; do # Load relevant container settings - source $DIR/letsencrypt_service_data + source "$DIR"/letsencrypt_service_data for cid in "${LETSENCRYPT_CONTAINERS[@]}"; do # Derive host and email variable names @@ -17,31 +19,30 @@ while true; do hosts_array=$host_varname[@] email_varname="LETSENCRYPT_${cid}_EMAIL" - domain_params="" for domain in "${!hosts_array}"; do - domain_params+="-d $domain " + + # Create the domain directory + mkdir -p /etc/nginx/certs/$domain + cd /etc/nginx/certs/$domain + + /opt/simp_le/venv/bin/simp_le \ + -d "$domain" \ + -f fullchain.pem -f key.pem \ + --email "${!email_varname}" \ + --server=https://acme-v01.api.letsencrypt.org/directory \ + --default_root /usr/share/nginx/html/ + + simp_le_return=$? + + if [[ $simp_le_return -eq 0 ]]; then + # Symlink to created certificate and key. + ln -sf ./$domain/fullchain.pem /etc/nginx/certs/$domain".crt" + ln -sf ./$domain/key.pem /etc/nginx/certs/$domain".key" + fi + + # TODO: Regenerate nginx config if simp_le created a certificate and key + #if [ "$simp_le_return" -eq 0 ]; then nginx -s reload; fi done - - # Use the first domain to create the directory - primary_domain=${!host_varname} - mkdir -p /etc/nginx/certs/$primary_domain - cd /etc/nginx/certs/$primary_domain - /opt/simp_le/venv/bin/simp_le $domain_params -f fullchain.pem -f key.pem --email ${!email_varname} \ - --server=https://acme-v01.api.letsencrypt.org/directory \ - --default_root /usr/share/nginx/html/ - simp_le_return=$? - cd /app - - # Symlink to created certificate and key. - for domain in "${!hosts_array}"; do - ln -sf ./$primary_domain/fullchain.pem /etc/nginx/certs/$domain".crt" - ln -sf ./$primary_domain/key.pem /etc/nginx/certs/$domain".key" - done - - # TODO: Regenerate nginx config if simp_le created a certificate and key - #if [ "$simp_le_return" -eq 0 ]; then nginx -s reload; fi - - unset $host_varname; unset $email_varname; unset $hosts_array done unset LETSENCRYPT_CONTAINERS