:.     Home     .:.     Cours     .:.     Faits divers     .:.     Blagues     .:.     Liens     .:.     Perso     .:

 

Let's encrypt

 

Juste un petit script pour le renouvellement automatique que j'avais écrit en 2015 sur une machine Ubuntu server.
DANE, on ne sait pas c'est pour quand. Donc on repart avec let's encrypt.


#!/bin/bash
#
# Renouvellement automatique de let's encrypt
#
# On essaye de renouveler 10 jours avant l'expiration
#
DAYSTORENEW=10
DAYSTOALERT=5
LETSENCRYPT="/usr/local/bin/letsencrypt/letsencrypt-auto"
RELOADAPACHE="apache2ctl graceful"

#[ -x $LETSENCRYPT ] || echo "Le script $LETSENCRYPT a disparu" && exit 1
[ -x $LETSENCRYPT ] || exit 1

if [ $# -ne 1 ]; then
    echo "Usage: $LETSENCRYPT <domainname>"
    exit 1
fi

# Send notifications to
EMAIL=support@yerbynet.com

# Read the domain name
DOMAIN=$1
CERTFILE="/etc/letsencrypt/live/$DOMAIN/cert.pem"
DOCROOT=`grep DocumentRoot /etc/apache2/sites-enabled/*$DOMAIN* | grep -v ssl | cut -d '"' -f 2`
if [ ! $DOCROOT ]; then
    echo "Vhost inexistant ou apache mal configuré"
    exit 1
fi

if [ -e /etc/letsencrypt/live/$DOMAIN ]; then
    DATE1=$(openssl x509 -in $CERTFILE -text -noout | grep "Not After" | cut -c 25-)
    SEC1=`date -d "$DATE1" +%s`
    DAYS1=`expr $SEC1 / 86400`
    DAYS2=`expr $(date +%s) / 86400`
    DAYS=$(echo "$DAYS1 - $DAYS2" | bc)
    if [ $DAYS -ge $DAYSTORENEW ]; then
        exit 0
    fi

    # Else, try to renew
    $LETSENCRYPT certonly --webroot -w $DOCROOT --renew-by-default -d $DOMAIN --email $EMAIL --agree-tos
    #$LETSENCRYPT -certonly -webroot -w $DOCROOT --renewbydefat -d $DOMAIN --email $EMAIL --agree-tos
    if [ $? -ne 0 -a $DAYS -le $DAYSTOALERT ]; then
        #echo "Can't renew ssl certificate for $DOMAIN"
        echo "Renouvellement impossible du certificat pour $DOMAIN" | mail -s "SSL pour $DOMAIN" $EMAIL
    else
        $RELOADAPACHE
        echo "Renouvellement de SSL pour $DOMAIN : OK" | mail -s "SSL pour $DOMAIN" $EMAIL
    fi

else
    echo "Generating a new cert for $DOMAIN"
    $LETSENCRYPT  certonly --webroot -w $DOCROOT --renew-by-default -d $DOMAIN --email $EMAIL --agree-tos
fi

 


L'information, n'est-elle pas précieuse ? Partageons la tous ensemble !

 © Août 2017
Roger YERBANGA
www.yerbynet.com