Vous êtes ici : index » informatique » securite » letsencrypt
Piste : letsencrypt

Let's Encrypt

Ceci est une ancienne révision du document !


Let's Encrypt

Installation de l'agent certbot

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.

Pré-configuration d'Apache

  • 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

Test avant d'aller plus loin

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

Génération initial du certificat

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.