MES TUTOS
VEILLE
Chargement de la veille...
SÉCURITÉ

HTTPS & Certificats SSL : Automatisation avec Certbot

Fini le temps où les certificats SSL coûtaient des centaines d'euros et nécessitaient des jours de validation. Grâce à l'initiative Let's Encrypt et à l'outil Certbot, nous pouvons sécuriser nos serveurs web (Nginx/Apache) gratuitement et automatiquement.

1. Prérequis DNS et Pare-feu

Avant même de toucher à Certbot, deux conditions sont obligatoires. Si vous les ratez, la validation échouera.

  1. DNS : Votre nom de domaine (ex: mon-site.fr) doit pointer vers l'IP publique de votre serveur (Enregistrement A).
  2. Port 80 ouvert : Let's Encrypt doit pouvoir accéder à votre serveur pour vérifier que vous en êtes bien le propriétaire (Challenge HTTP-01).

Si vous avez suivi mon tuto sur la sécurité, ouvrez les ports dans UFW :

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw reload

2. Installation de Certbot

Certbot est le client officiel de l'EFF (Electronic Frontier Foundation). Nous allons installer le cœur et le plugin pour Nginx (ou Apache selon votre serveur).

sudo apt update
sudo apt install certbot python3-certbot-nginx -y

Note : Pour Apache, remplacez le paquet par python3-certbot-apache.

3. Génération du certificat

C'est ici que la magie opère. La commande suivante va :

sudo certbot --nginx -d lml-info.fr -d www.lml-info.fr

Lors de l'installation, Certbot vous posera une question cruciale :

"Please choose whether or not to redirect HTTP traffic to HTTPS"
Répondez toujours 2 (Redirect). Cela force tous vos visiteurs à utiliser la version sécurisée du site.

4. Renouvellement automatique

Les certificats Let's Encrypt ne sont valides que 90 jours. Heureusement, vous n'avez rien à faire. Certbot installe un timer systemd qui vérifie deux fois par jour la validité.

Vous pouvez tester le processus de renouvellement pour être sûr que tout fonctionne :

sudo certbot renew --dry-run

Si vous voyez le message Congratulations, all renewals succeeded, vous pouvez dormir tranquille.


5. Pour aller plus loin : Sécurité renforcée (HSTS)

Avoir un cadenas vert ne suffit pas. Pour empêcher les attaques de type "Downgrade", vous devez activer le HSTS (HTTP Strict Transport Security).

Dans votre configuration Nginx (/etc/nginx/sites-available/default), ajoutez cette ligne dans le bloc server { ... 443 ... } :

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

Cela indique aux navigateurs : "N'essaie même pas de te connecter en HTTP à ce site pendant 1 an, force le HTTPS quoi qu'il arrive".

6. Vérification finale

Pour confirmer que votre configuration est parfaite, utilisez l'outil de référence Qualys SSL Labs.

Tester mon site sur SSL Labs

Avec cette configuration, vous devriez obtenir la note A ou A+.

← Retour à la bibliothèque