Nginx & Let's Encrypt
Configuration du VirtualHost HTTP
- Ajouter le bloc suivant dans la configuration du Virtualhost HTTP du site:
# Allow Let's Encrypt ACME challenge location ~ /\.well-known/acme-challenge/ { allow all; default_type "text/plain"; root /var/www/certbot; try_files $uri =404; break; }
Ce bloc doit être positionné avant toutes configurations pouvant influé sur une requête commençant par
/.well-known/acme-challenge/
, comme par exemple une redirection systématique vers HTTPS.
- Créer le dossier
/var/www/certbot/.well-known/acme-challenge/
ainsi qu'un fichier index.html dans celui-ci:mkdir -p /var/www/certbot/.well-known/acme-challenge/ echo "No site here" > /var/www/certbot/.well-known/acme-challenge/index.html
- Tester le bon fonctionnement:
service nginx reload curl http://my.domain.tld/.well-known/acme-challenge/index.html
Si tout fonctionne comme prévu, la dernière commande devrait vous retourner:
No site here
Génération du certificat
certbot certonly --non-interactive --agree-tos --webroot --webroot-path /var/www/certbot --email webmaster@domain.tld -d my.domain.tld -d ${AUTRE_FQDN} -d ${AUTRE_FQDN_SI_BESOIN} --post-hook "systemctl reload nginx"
Configuration du VirtualHost HTTPS
Ajouter les lignes suivantes pour utiliser le certificat nouvellement généré:
ssl_certificate /etc/letsencrypt/live/my.domain.tld/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/my.domain.tld/privkey.pem;