#!/usr/bin/env bash # ---------------------------------- # EXAMPLE POUR EXMAPLE.FEDEREZ.NET # À ADAPTER EN FONCTION DU SERVEUR # ---------------------------------- #set -e #set -o pipefail PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin # remplacer avec le bon chemin, cf le --cert-name ci-dessous FULLCHAINPATH="/etc/letsencrypt/live/EXMAPLE.federez.net/fullchain.pem" if [[ -e "$FULLCHAINPATH" ]] then OLDHASH_CERT=$(sha1sum $FULLCHAINPATH | cut -d" " -f 1) else OLDHASH_CERT="nope" fi echo "Renewing federez.net with letsencrypt-auto..." # Bien s'assurer que le --cert-name est défini, sinon il y aura des problèmes si on veut retirer des domaines. # De préférence mettre le meme nom que le premier domaine demandé, qui est de préférence le FQDN du serveur. /usr/bin/letsencrypt certonly --config /etc/letsencrypt/cli.ini --non-interactive --quiet \ --cert-name EXMAPLE.federez.net \ -d EXMAPLE.federez.net \ -d ldap-ro.federez.net \ -d wiki-backup.federez.net \ -d git.federez.net \ --text NEWHASH_CERT=$(sha1sum $FULLCHAINPATH | cut -d" " -f 1) if [[ "$OLDHASH_CERT" != "$NEWHASH_CERT" ]] then SHOULD_RESTART_SERVICES=1 echo "Renewals done!" else SHOULD_RESTART_SERVICES=0 echo "INFO: No certificate renewed, will not restart services." fi # --------------------------------------------------------------------- # Ci-dessous à adapter en fonction des services présents sur le serveur # --------------------------------------------------------------------- # # exemple for pure-ftpd that needs a very specific certificate file # echo "Generating pure-ftpd's certificate..." # cat /etc/letsencrypt/live/EXAMPLE.federez.net/privkey.pem /etc/letsencrypt/live/EXAMPLE.federez.net/fullchain.pem > /etc/ssl/private/pure-ftpd.pem # restart the services only if needed if [[ "$SHOULD_RESTART_SERVICES" -eq 1 ]] then echo "Restarting services ..." /bin/systemctl reload apache2.service # /bin/systemctl reload postfix.service # /bin/systemctl reload proftpd.service # /bin/systemctl restart dovecot.service # /bin/systemctl restart slapd.service fi