Cette page est en lecture seule. Vous pouvez afficher le texte source, mais ne pourrez pas le modifier. Contactez votre administrateur si vous pensez qu'il s'agit d'une erreur. ====== Let's Encrypt ====== ===== Installation de l'agent certbot ===== <code bash>apt install certbot</code> <note tip>Sur de vieux système ou des systèmes ne proposant pas de paquet pour //certbot// (voir méthodes de déploiement officielles [[https://certbot.eff.org/|ici]]), vous pouvez utiliser la version //auto// : <code bash>wget -O /usr/local/sbin/certbot-auto https://dl.eff.org/certbot-auto chmod 755 /usr/local/sbin/certbot-auto</code> 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 [[https://acme.sh|acme.sh]].</note> ===== Pré-configuration d'Apache ===== * Créer le dossier qui servira aux //challenge ACME// : <code bash>mkdir -p /var/www/well-known/public_html/.well-known/acme-challenge/</code> * Mettre en place un fichier //index.html// témoins : <code bash>echo "No site here" > /var/www/well-known/public_html/.well-known/acme-challenge/index.html</code> * Mettre en place un //alias// dans la configuration //Apache// pour ce dossier : <code bash>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</code> * 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 : <code apache>RewriteEngine on RewriteCond %{REQUEST_URI} !(^/\.well-known/.*$) RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [R=301]</code> <note tip>Si ce n'est pas fait, penser à activer le module //rewrite// pour que cela fonctionne : <code bash>a2enmod rewrite service apache2 force-reload</code></note> * Recharger la configuration d'Apache : <code bash>service apache2 reload</code> ===== 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 : <code bash>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"</code> <note tip>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%%''.</note> 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"//) ===== Utilisation du certificat dans Apache ===== * Dans votre //VirtualHost SSL//, ajouté les lignes suivantes : <code apache> 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</code>