informatique:securite:letsencrypt

Ceci est une ancienne révision du document !


Let's Encrypt

apt install certbot
Sur de vieux système ou des systèmes ne proposant pas de paquet pour certbot (voir méthodes de déploiement officielles ici), vous pouvez utiliser la version auto :
wget -O /usr/local/sbin/certbot-auto https://dl.eff.org/certbot-auto
chmod 755 /usr/local/sbin/certbot-auto

Il s'agit d'une version qui gère sa auto-mise à jour automatique à chaque exécution.

Pour les systèmes incompatibles, il est également possible d'utiliser l'agent acme.sh.

  • Créer le dossier qui servira aux challenge ACME :
    mkdir -p /var/www/well-known/public_html/.well-known/acme-challenge/
  • Mettre en place un fichier index.html témoins :
    echo "No site here" > /var/www/well-known/public_html/.well-known/acme-challenge/index.html
  • Mettre en place un alias dans la configuration Apache pour ce dossier :
    echo "Alias /.well-known/acme-challenge/ /var/www/well-known/public_html/.well-known/acme-challenge/" > /etc/apache2/conf-available/well-known.conf
    a2enconf well-known
  • Dans le VirtualHost HTTP du site sur lequel, si une redirection HTTP vers HTTPS est place, il faut l'adapter pour laisser passer les requêtes des challenges ACME, par exemple :
    RewriteEngine on
    RewriteCond %{REQUEST_URI} !(^/\.well-known/.*$)
    RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [R=301]
Si ce n'est pas fait, penser à activer le module rewrite pour que cela fonctionne :
a2enmod rewrite
service apache2 force-reload
  • Recharger la configuration d'Apache :
    service apache2 reload

Appelez l'URL du genre http://[fqdn]/.well-known/acme-challenge/index.html : Ça devrait retourner No site here.

Générez le certificat à l'aide de la commande suivante :

certbot certonly --non-interactive --agree-tos --webroot --webroot-path /var/www/well-known/public_html --email dns@example.com -d ${FQDN} -d ${AUTRE_FQDN} -d ${AUTRE_FQDN_SI_BESOIN} --renew-hook "/usr/sbin/service apache2 restart"
Le nom du certificat est normalement le premier FQDN listé, mais au besoin il peut être spécifié explicitement à l'aide du paramètre --cert-name.

Le certificat a normalement été généré et déposé dans le dossier /etc/letsencrypt. Pour l'utiliser, le plus simple est de pointer vers les liens symboliques maintenues par certbot lors de chaque mise à jour :

  • /etc/letsencrypt/live/[cert name]/privkey.pem : la clé privée
  • /etc/letsencrypt/live/[cert name]/cert.pem : le certificat
  • /etc/letsencrypt/live/[cert name]/chain.pem : la chaîne de certification
  • /etc/letsencrypt/live/[cert name]/fullchain.pem : le certificat et sa chaîne de certification (ordre : “de la feuille vers tronc”)
  • Dans votre VirtualHost SSL, ajouté les lignes suivantes :
    SSLEngine               On
    SSLCertificateFile      /etc/letsencrypt/live/[cert name]/cert.pem
    SSLCertificateKeyFile   /etc/letsencrypt/live/[cert name]/privkey.pem
    SSLCACertificateFile    /etc/letsencrypt/live/[cert name]/chain.pem
  • informatique/securite/letsencrypt.1549305324.txt.gz
  • Dernière modification : 2019/02/04 18:35
  • de bn8