informatique:securite:letsencrypt

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.txt
  • Dernière modification : 2019/02/04 18:37
  • de bn8