Aller au contenu
Administration serveur

Certbot

CertBot

Introduction à Certbot

Définition et utilité de Certbot

Certbot est un outil logiciel gratuit et open-source qui permet d'obtenir automatiquement des certificats SSL/TLS, fournis par Let's Encrypt, pour sécuriser les communications sur un site web. Il facilite également le processus de renouvellement de ces certificats.

Brève histoire et l'organisation Let's Encrypt

Let's Encrypt est une autorité de certification lancée en 2016 qui fournit des certificats gratuits dans le but de promouvoir un internet plus sécurisé. Certbot a été développé par l'EFF (Electronic Frontier Foundation) pour automatiser l'utilisation de ces certificats.

Installation de Certbot

Prérequis système

  • Accès root ou sudo sur le serveur
  • Serveur web déjà installé (Apache, Nginx, etc.)
  • Noms de domaine pointant vers le serveur

Instructions d'installation

Debian/Ubuntu

https://certbot.eff.org/instructions?ws=nginx&os=ubuntufocal

  1. Mettre à jour la liste des paquets :

    sudo apt update
    
  2. Installer Certbot :

    sudo snap install --classic certbot
    
  3. Préparation de la commande certbot :

    sudo ln -s /snap/bin/certbot /usr/bin/certbot
    

    Configuration de Certbot

    Configuration initiale pour un site avec Nginx

    Pour obtenir un certificat SSL/TLS et configurer automatiquement Nginx, exécutez la commande suivante :

    sudo certbot --nginx
    
    • Certbot va rechercher les noms de domaine configurés dans Nginx et vous demandera de choisir ceux pour lesquels vous souhaitez obtenir un certificat.
    • Vous devrez également fournir une adresse email pour les notifications de renouvellement et accepter les termes du service.
    • Certbot modifiera ensuite la configuration de Nginx pour activer HTTPS.

    Configuration pour plusieurs sites

    Si vous avez plusieurs sites hébergés sur le même serveur Nginx, vous pouvez répéter le processus pour chaque site en exécutant à nouveau la commande sudo certbot --nginx et en sélectionnant les noms de domaine appropriés lorsqu'ils vous sont présentés.

    Exemple

    1. Lancez la commande sudo certbot --nginx
    2. Entrez votre email.
    3. Acceptez les conditions d’utilisation.
    4. Refusez le partage de votre email.
    5. Selectionnez les sites sur lesquels vous voulez activer HTTPS.

Gestion des certificats SSL/TLS

Obtention d'un certificat

  • Utilisez la commande suivante pour obtenir un certificat pour un ou plusieurs domaines :

    sudo certbot --nginx -d exemple.com -d www.exemple.com
    
  • Certbot va valider la propriété du domaine et émettre un certificat.

Renouvellement automatique des certificats

  • Certbot crée une tâche cron ou systemd timer pour renouveler les certificats automatiquement avant qu'ils n'expirent.

  • Pour tester le processus de renouvellement, utilisez :

    sudo certbot renew --dry-run
    

Visualisation et gestion des certificats existants

  • Pour lister tous les certificats Certbot installés sur le serveur :

    sudo certbot certificates
    
  • Pour supprimer un certificat :

    sudo certbot delete --cert-name exemple.com
    

Commandes et options utiles de Certbot

Commandes de base

  • Obtenir un certificat :

    sudo certbot --nginx
    
  • Renouveler tous les certificats :

    sudo certbot renew
    
  • Annuler un certificat :

    sudo certbot revoke --cert-path /chemin/vers/cert.pem
    

Options avancées et personnalisations

  • Changer l'email associé aux certificats :

    sudo certbot update_account --email nouvel-email@example.com
    
  • Modifier la configuration HTTPS :

    sudo certbot --nginx --preferred-challenges http -d exemple.com
    
  • Forcer le renouvellement d'un certificat :

    sudo certbot renew --force-renewal
    

Bonnes pratiques et sécurité

Sécurisation de la configuration SSL/TLS

  • Utilisez des paramètres de chiffrement forts dans la configuration de votre serveur web.
  • Mettez régulièrement à jour vos logiciels serveurs pour corriger les vulnérabilités.
  • Utilisez l'option --hsts pour ajouter la Strict-Transport-Security header et forcer le navigateur à toujours utiliser HTTPS.

Automatisation et planification du renouvellement

  • Vérifiez que la tâche cron ou systemd timer est bien en place pour automatiser le renouvellement des certificats.
  • Surveillez les logs de renouvellement pour vous assurer qu'il n'y a pas d'erreurs.

Surveillance et dépannage

  • Testez votre configuration SSL avec des outils en ligne comme SSL Labs' SSL Test.

  • Consultez les logs de Certbot en cas d'échec de renouvellement ou d'autres erreurs :

    sudo less /var/log/letsencrypt/letsencrypt.log
    
  • En cas de problème, utilisez l'option --debug pour obtenir plus d'informations lors de l'exécution des commandes Certbot.

Sources