Let's Encrypt multidominio
- first-setup.sh
#!/bin/bash COMMON_NAME=${1:-"landing.fidmag.org"} COMMON_ALT_NAME=${COMMON_NAME//./_} [[ ! -z ${COMMON_NAME} ]] && { echo -e "Creating letsencrypt directory...\n" mkdir -p /etc/letsencrypt/live/${COMMON_NAME} #openssl genrsa 4096 > account.key echo -e "Generating .key & .csr for domain...\n" openssl genrsa 4096 > domain_${COMMON_ALT_NAME}.key openssl req -new -sha256 -key domain_${COMMON_ALT_NAME}.key -subj "/" -reqexts SAN -config <(cat /etc/ssl/openssl.cnf <(printf "[SAN]\nsubjectAltName=DNS:${COMMON_NAME}",DNS:www.brainpredict.com,DNS:brainpredict.com,DNS:empremtes.fidmag.org,DNS:huellas.fidmag.org,DNS:investiga.fidmag.org)) > domain_${COMMON_ALT_NAME}.csr } || { echo -e "FQDN as a first parameter needed\n" }
- renew.sh
#!/bin/bash cd /root/dev/acme-tiny declare -a COMMON_NAMES=("fidmag.org" "moodle.fidmag.org" "intranet.fidmag.org" "internal.fidmag.org" "landing.fidmag.org") for COMMON_NAME in "${COMMON_NAMES[@]}"; do COMMON_ALT_NAME=${COMMON_NAME//./_} /usr/bin/python acme_tiny.py --disable-check --account-key ./account_fidmag_org.key --csr ./domain_${COMMON_ALT_NAME}.csr --acme-dir /var/www-internal/well-known/acme-challenge/ > ./signed_${COMMON_ALT_NAME}.crt RESULT=$? if [ $RESULT -eq 0 ]; then [[ -f /etc/letsencrypt/live/${COMMON_NAME}/ssl.pem ]] && mv /etc/letsencrypt/live/${COMMON_NAME}/ssl.pem /etc/letsencrypt/live/${COMMON_NAME}/ssl.pem.bak cat domain_${COMMON_ALT_NAME}.key signed_${COMMON_ALT_NAME}.crt > /etc/letsencrypt/live/${COMMON_NAME}/ssl.pem rm signed_${COMMON_ALT_NAME}.crt else echo Certificate update failed echo "Letsencrypt certificate update error on ${COMMON_NAME} (/root/dev/acme-tiny/renew.sh)" | /usr/sbin/sendmail -v informatica@fidmag.com fi done /bin/systemctl restart apache2.service