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
.