Let’s Encrypt : gestion des certificats avec le client dehydrated

Boris HUISGEN March 11, 2017

administration let's encrypt dehydated

Ayant un peu de temps, je me suis décidé – moi et ma flemme sacrée – à virer mon certificat StartSSL. Pour les désinformés, il y a une bien triste histoire à connaître sur les pratiques de StartSSL/WoSign.

Pour gérer les certificats de Let’s Encrypt, l’installation du client CLI dehydrated permet d’automatiser leur génération et leur renouvellement étant donné leur validité de trois mois :

    # apt install dehydated

Premier étape, lister les certificats et les domaines associés (1 certificat par ligne) :

    # vim /etc/dehydated/domains.txt
1
    blog.hbis.fr www.hbis.fr

Enfin, le fichier de configuration :

    # vim /etc/dehydratd/conf.d/letsencrypt.sh
1
2
3
    BASEDIR="/var/lib/letsencrypt/"
    WELLKNOWN="/var/www/hbis.fr/blog/html/.well-known/acme-challenge"
    CONTACT_EMAIL="postmaster@hbis.fr"

Reste à lancer la génération :

    # mkdir -p /var/lib/letsencrypt /var/www/hbis.fr/blog/html/.well-known/acme-challenge
    # dehydrated -c --force

Les différents services sécurisés sont à réconfigurer:

    # vim /etc/nginx/ssl-enabled/hbis
1
2
3
4
5
6
    ssl on;
    ssl_certificate /var/lib/letsencrypt/certs/blog.hbis.fr/fullchain.pem;
    ssl_certificate_key /var/lib/letsencrypt/certs/blog.hbis.fr/privkey.pem;
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_trusted_certificate /var/lib/letsencrypt/certs/blog.hbis.fr/chain.pem;
    # vim /etc/postfix/main.cf
1
2
3
    smtpd_tls_CAfile = /var/lib/letsencrypt/certs/blog.hbis.fr/chain.pem
    smtpd_tls_cert_file = /var/lib/letsencrypt/certs/blog.hbis.fr/cert.pem
    smtpd_tls_key_file = /var/lib/letsencrypt/certs/blog.hbis.fr/privkey.pem
    # vim /etc/dovecot/conf.d/10-ssl
1
2
    ssl_cert = </var/lib/letsencrypt/certs/blog.hbis.fr/fullchain.pem
    ssl_key = </var/lib/letsencrypt/certs/blog.hbis.fr/privkey.pem

Dernière étape, il est nécessaire de mettre en place un cron pour les renouveller automatiquement et relancer les services nécessaires:

    # vim /etc/cron.montly/dehydrated
1
2
3
4
5
    #!/bin/bash
    
    /usr/bin/dehydrated -c &amp;amp;&amp;amp; systemctl restart nginx postfix dovecot

    # chmod +x /etc/cron.montly/dehydrated

See also

OpenSSL: extraire la chaîne de certificats d’un hôte
Read more
Docker : inspecter les commandes healthcheck
Read more
Fabric : redémarrer un host distant
Read more