Installer un certificat SSL sur nginx
nginx lit le certificat et la chaîne dans un seul fichier : la directive ssl_certificate reçoit le fullchain.
1. Placer les fichiers
Créez le fichier de chaîne complète (certificat en premier, intermédiaires ensuite) et protégez la clé :
cd /etc/nginx/ssl/www.exemple.fr
cat www.exemple.fr.crt intermediaires.crt > fullchain.pem
chown root:root fullchain.pem www.exemple.fr.key
chmod 644 fullchain.pem
chmod 600 www.exemple.fr.key
2. Configurer le bloc server
server {
listen 443 ssl;
listen [::]:443 ssl;
http2 on;
server_name www.exemple.fr;
root /var/www/exemple.fr;
ssl_certificate /etc/nginx/ssl/www.exemple.fr/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/www.exemple.fr/www.exemple.fr.key;
ssl_protocols TLSv1.2 TLSv1.3;
}
Ne mettez pas le certificat seul dans ssl_certificate : les clients qui ne connaissent pas l’autorité intermédiaire signaleraient une chaîne incomplète. La directive http2 on; active HTTP/2 et exige nginx 1.25.1 ou plus récent. Avec une version antérieure, supprimez cette ligne et écrivez listen 443 ssl http2; (et listen [::]:443 ssl http2;) à la place.
3. Tester et recharger
nginx -t
systemctl reload nginx
nginx -t vérifie la syntaxe et l’ouverture des fichiers. Une erreur key values mismatch signifie que la clé ne correspond pas au certificat : voir les erreurs SSL courantes. Pour contrôler ce que le serveur présente, utilisez la commande openssl s_client donnée dans la page d’installation.
Rediriger HTTP vers HTTPS
server {
listen 80;
listen [::]:80;
server_name www.exemple.fr;
return 301 https://www.exemple.fr$request_uri;
}