aslain.dev
0%
01 Hizmetler 02 Hakkımda 03 Projeler 04 Stack 05 Blog 06 İletişim
← Tüm makaleler Développement Web

Installation d'un certificat SSL : HTTPS avec Let's Encrypt

Un certificat SSL chiffre le trafic entre un visiteur et votre serveur et affiche le cadenas dans la barre d'adresse. Le HTTPS n'est plus une option : Google en fait un signal de classement léger, les navigateurs modernes signalent les formulaires non chiffrés comme « Non sécurisé », et il est indispensable pour tout site disposant d'un formulaire de contact, d'un écran de connexion ou d'une étape de paiement. La bonne nouvelle, c'est qu'avec Let's Encrypt vous pouvez installer un certificat valide gratuitement en quelques commandes. Dans ce guide, je détaille toute l'installation avec Certbot sur un VPS Linux pour Nginx ou Apache, ainsi que le renouvellement automatique et une redirection sûre de HTTP vers HTTPS.

SSL, TLS et HTTPS : la différence

Clarifions le vocabulaire, car il est souvent confondu. TLS (Transport Layer Security) est le protocole actuel qui chiffre le trafic ; SSL en est l'ancien nom, mais tout le monde dit encore « certificat SSL ». Le HTTPS n'est rien d'autre que HTTP fonctionnant sur cette couche TLS. Le fichier que vous installez sur votre serveur est techniquement un certificat TLS, mais en pratique nous parlons tous de la même chose.

Let's Encrypt délivre des certificats de type Domain Validation (DV) : ils prouvent que vous contrôlez le domaine, pas l'identité juridique de votre entreprise. Pour la plupart des blogs, sites professionnels et applications, c'est amplement suffisant — le cadenas et le chiffrement sont identiques à ceux des certificats payants. La seule différence notable est la validité de 90 jours, ce qui fait du renouvellement automatique le cœur du dispositif.

Ce qu'il vous faut avant de commencer

  • Un nom de domaine avec un enregistrement DNS A (ou AAAA) pointant vers l'IP de votre serveur.
  • Un accès SSH au serveur avec les privilèges sudo.
  • Un serveur web en fonctionnement : Nginx ou Apache.
  • Les ports 80 et 443 ouverts dans le pare-feu — Let's Encrypt valide via le port 80.

Avant de démarrer, vérifiez que l'enregistrement DNS s'est propagé avec dig +short votredomaine.com et qu'il renvoie la bonne IP. Un enregistrement mal configuré est la première cause d'échec de la validation.

Installation de Certbot

Certbot est le client officiel de Let's Encrypt ; il automatise l'obtention du certificat, la modification de la configuration et le renouvellement. La méthode recommandée est le paquet snap, car il fournit toujours la dernière version. Sur Ubuntu/Debian :

sudo apt update
sudo apt install snapd -y
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot

Si vous préférez ne pas utiliser snap, installez-le depuis le dépôt de la distribution avec sudo apt install certbot python3-certbot-nginx (ou python3-certbot-apache pour Apache) ; la version sera peut-être un peu plus ancienne mais fonctionnelle.

Obtenir un certificat pour Nginx

La méthode la plus simple est le plugin Nginx de Certbot. Une seule commande obtient le certificat et ajoute automatiquement le bloc HTTPS à votre configuration :

sudo certbot --nginx -d votredomaine.com -d www.votredomaine.com

Certbot demande une adresse e-mail (pour les avis de renouvellement) et l'acceptation des conditions d'utilisation. Il vous demande ensuite s'il faut rediriger automatiquement les requêtes HTTP vers HTTPS — choisissez l'option « Redirect ». Une fois terminé, votre bloc serveur ressemble à ceci :

server {
    listen 443 ssl;
    server_name votredomaine.com www.votredomaine.com;

    ssl_certificate     /etc/letsencrypt/live/votredomaine.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/votredomaine.com/privkey.pem;

    # ... le reste de la configuration de votre application
}

Certbot ajoute aussi un second bloc en écoute sur le port 80 qui redirige tout le trafic vers https://. Pour appliquer le changement, testez et rechargez avec sudo nginx -t && sudo systemctl reload nginx.

Si vous utilisez Apache

La logique côté Apache est identique ; seul le plugin change :

sudo certbot --apache -d votredomaine.com -d www.votredomaine.com

Certbot active les modules mod_ssl et mod_rewrite, crée un fichier d'hôte virtuel SSL et ajoute la règle de redirection. Si vous préférez n'obtenir que le certificat sans laisser Certbot modifier le serveur web, exécutez sur l'un ou l'autre serveur sudo certbot certonly --webroot -w /var/www/votredomaine -d votredomaine.com puis configurez le tout à la main.

Renouvellement automatique : l'étape la plus critique

Comme les certificats Let's Encrypt durent 90 jours, oublier le renouvellement est la façon la plus courante de retrouver son site inaccessible un matin. Heureusement, une installation par snap ou paquet configure un systemd timer automatique (ou une tâche cron) qui s'exécute deux fois par jour et renouvelle dès que le certificat entre dans ses 30 derniers jours. Pour vérifier que le timer est actif :

systemctl list-timers | grep certbot

Pour vérifier que le renouvellement fonctionnera sans accroc sans renouveler réellement, lancez un essai à blanc :

sudo certbot renew --dry-run

Si cette commande se termine sans erreur, le renouvellement automatique est sûr et vous n'aurez plus à y penser. Après un renouvellement, le serveur web doit charger le nouveau certificat ; les plugins Nginx/Apache s'en chargent, mais si vous avez installé à la main avec certonly, pensez à ajouter --deploy-hook "systemctl reload nginx".

Après l'installation : renforcez votre HTTPS

Le certificat fonctionne, mais quelques réglages supplémentaires renforcent la sécurité et le SEO :

  • En-tête HSTS : l'en-tête Strict-Transport-Security indique aux navigateurs d'ouvrir le site uniquement en HTTPS. Commencez par une durée courte, puis augmentez-la une fois certain que l'installation est définitive.
  • Contenu mixte : assurez-vous que chaque image, script et feuille de style de la page utilise https:// ou est relatif au protocole (//) ; sinon le cadenas est cassé.
  • Vérifiez la redirection : curl -I http://votredomaine.com doit renvoyer un 301 pointant vers l'adresse HTTPS.
  • Test SSL Labs : analysez votre configuration avec l'outil gratuit SSL Labs Server Test et visez au moins la note « A ».

Questions fréquentes

Un certificat Let's Encrypt est-il vraiment gratuit et sûr ?

Oui. Let's Encrypt est une autorité de certification à but non lucratif reconnue par les principaux navigateurs et systèmes d'exploitation. La force du chiffrement est identique à celle des certificats DV payants ; la seule différence est la validité de 90 jours et la nécessité d'un renouvellement automatique.

Je ne peux pas utiliser Certbot en hébergement mutualisé, que faire ?

De nombreux panneaux d'hébergement mutualisé (cPanel, Plesk, DirectAdmin) proposent déjà un « AutoSSL » intégré ou un Let's Encrypt en un clic. Dans ce cas, vous ne touchez jamais à la ligne de commande : sélectionnez simplement votre domaine dans le panneau et activez le SSL.

Puis-je obtenir un certificat joker (wildcard) ?

Oui. Un certificat joker comme *.votredomaine.com nécessite une validation DNS-01 : sudo certbot certonly --manual --preferred-challenges dns -d "*.votredomaine.com". Si l'API de votre fournisseur DNS est prise en charge, vous pouvez aussi automatiser cette validation.

Vous voulez passer votre site en HTTPS sécurisé ? Si vous avez besoin d'aide pour la configuration serveur, l'automatisation des certificats ou la performance, contactez-moi — je peux prendre en charge toute l'installation de bout en bout.

Bu kategorideki tüm yazılar →

Devamı için