1. Vérification des certificats actuels
Commande certbot certificates
Commençons par le basique : comment savoir quels certificats sont déjà installés sur ton serveur ? Let's Encrypt offre un outil pratique — certbot. Avec la commande certbot certificates, tu peux obtenir des infos détaillées sur les certificats actuels.
sudo certbot certificates
En résultat, tu verras quelque chose comme ça :
Found the following certs:
Certificate Name: example.com
Domains: example.com www.example.com
Expiry Date: 2023-12-31 10:00:00+00:00 (VALID: 89 days)
Certificate Path: /etc/letsencrypt/live/example.com/fullchain.pem
Private Key Path: /etc/letsencrypt/live/example.com/privkey.pem
Ici sont indiqués des détails importants :
- Nom du certificat.
- Domaines couverts par le certificat.
- Date d'expiration (pour que tu puisses le renouveler à temps).
- Chemin vers les fichiers du certificat et de la clé privée.
Astuce utile :
Si tu as tendance à ignorer les notifications sur les dates d'expiration, cette commande deviendra ton meilleur pote. Personne ne veut être ce développeur qui apprend l'expiration d'un certificat via des utilisateurs furieux.
2. Mise à jour automatique des certificats
Les coulisses de Let's Encrypt
Les certificats Let's Encrypt sont valables 90 jours pour minimiser les risques de sécurité. Mais les mettre à jour manuellement tous les 3 mois, c'est vraiment pas pratique. Heureusement, il y a une commande intégrée pour automatiser ça :
sudo certbot renew
Ce processus vérifie tous les certificats et met automatiquement à jour ceux qui approchent de leur expiration.
Configurer la mise à jour automatique avec Cron
Cron est un outil intégré pour planifier des tâches sous Linux. Il exécute des commandes selon un planning défini, et c'est exactement ce qu'il nous faut pour automatiser la mise à jour des certificats. Voici comment configurer Cron pour ça :
Ouvre l'éditeur
Cronpour l'utilisateur actuel :sudo crontab -eAjoute la ligne suivante à la fin du fichier :
0 0 * * * certbot renew --quietCette commande exécute
certbot renewchaque jour à minuit. L'option--quietsupprime les sorties inutiles, donc la mise à jour se fait silencieusement sans déranger personne.Enregistre les modifications et quitte l'éditeur.
Maintenant, ton serveur mettra automatiquement à jour les certificats, et tu n'as plus à te soucier de leur expiration (enfin, presque).
3. Mise à jour manuelle des certificats
Parfois l'automatisation ne résout pas tous les problèmes, et il faut mettre à jour les certificats manuellement. Par exemple, si tu viens d'ajouter un nouveau domaine à la configuration du site, tu dois demander un nouveau certificat manuellement. Là encore, certbot est là pour t'aider :
Exemple de commande :
sudo certbot renew
Mise à jour du certificat pour un domaine spécifique
Si tu dois mettre à jour le certificat lié à un domaine spécifique, utilise le format de requête suivant :
sudo certbot certonly --nginx -d example.com -d www.example.com
Voici :
--nginxindique que la configuration sera automatiquement appliquée au serveur Nginx. Pour Apache, utilise--apache.- Les flags
-dlistent les domaines pour lesquels tu veux émettre un certificat.
Après avoir exécuté la commande, Certbot vérifiera la configuration du serveur, demandera un nouveau certificat et le configurera.
4. Notifications et monitoring
Notifications par email
Lors de l'installation de Certbot, il t'a demandé ton adresse email. Si tu l'as renseigné, tu recevras des notifications 20 jours avant l'expiration du certificat. Si tu n'as pas renseigné d'email ou si tu veux le changer, tu peux le faire comme suit :
sudo certbot register --update-registration --email newaddress@example.com
Maintenant, rien ne te surprendra. Enfin, presque.
Vérification externe
Il existe des services tiers qui peuvent t'aider à suivre la validité des certificats. Par exemple, SSL Labs. Il te suffit d'entrer l'adresse du site, et le service vérifiera son certificat, y compris la validité, la chaîne de confiance et le niveau de sécurité.
5. Suppression des certificats inutiles
Parfois, les anciens certificats deviennent inutiles, par exemple si tu as cessé de gérer un domaine donné. Pour éviter d'encombrer le système, il vaut mieux les supprimer.
Commande pour supprimer :
sudo certbot delete
Certbot affichera une liste des certificats disponibles et te proposera de choisir lequel supprimer.
Conseil utile :
Fais gaffe lorsque tu supprimes des certificats, pour ne pas désactiver accidentellement un site en fonctionnement. Vérifie toujours que le certificat n'est utilisé nulle part avant de le supprimer.
6. Exemples et débogage des erreurs
Vérification après la mise à jour
Après toute modification ou mise à jour des certificats, vérifie toujours que le site fonctionne correctement. Le moyen le plus simple est d'utiliser curl :
curl -I https://example.com
Le résultat attendu est le code HTTP/1.1 200 OK.
Si quelque chose ne va pas, commence par regarder les logs :
Pour Nginx :
sudo tail -f /var/log/nginx/error.logPour Apache :
sudo tail -f /var/log/apache2/error.log
Erreur fréquente : "Too Many Requests"
Si tu demandes trop souvent de nouveaux certificats, Let's Encrypt peut te bloquer avec l'erreur "Too Many Requests". Dans ce cas, il est recommandé d'utiliser le serveur de test de Let's Encrypt :
sudo certbot certonly --test-cert --nginx -d example.com
Cette commande génère un certificat de test, qui n'est pas valide pour une utilisation réelle, mais qui aide à vérifier la configuration.
7. Dernière étape : redémarrage automatique du serveur web
Let's Encrypt met à jour les fichiers de certificats, mais les serveurs web comme Nginx ou Apache ne remarquent pas les changements tant que vous ne les redémarrez pas. Ça aussi peut être automatisé. Mets à jour l'entrée Cron :
0 0 * * * certbot renew --quiet && systemctl reload nginx
Ou pour Apache :
0 0 * * * certbot renew --quiet && systemctl reload apache2
Désormais, après la mise à jour, tout certificat sera immédiatement appliqué au serveur.
Cette conférence vise à ce que tu puisses dormir tranquille en sachant que tes certificats se mettent à jour automatiquement, que les sites sont sécurisés, et que tu ne recevras pas un appel de ton boss à trois heures du matin avec "Les utilisateurs se plaignent que le site est inaccessible". La gestion des certificats est une compétence importante qui te sera utile dans un vrai boulot, surtout si tu prévois de travailler sur le déploiement d'applications web complexes ou dans l'ingénierie DevOps.
GO TO FULL VERSION