Files
varlog/_cache/similar/88333015-b90a-4dd4-a389-2dde260b4c0c.json
2026-05-15 10:37:48 +02:00

1 line
30 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
[{"uuid":"5a0cced3-40d0-46bf-8501-b533f3c2608e","slug":"reparer-une-instance-uptime-kuma-installee-via-le-script-proxmox","title":"Réparer une instance Uptime Kuma installée via le script Proxmox","category":"informatique","author":"cedric@abonnel.fr","cover":"cover.svg","published":true,"published_at":"2025-11-26 08:33","created_at":"2025-11-26 08:33:49","updated_at":"2026-05-12 09:16:00","tags":[],"plain":"Méthode basée sur l'installation via le script communautaire :\r\ncommunity-scripts.github.io/ProxmoxVE/scripts?id=uptimekuma\r\n\r\nSi tu utilises Uptime Kuma pour monitorer ton infra, tu finiras tôt ou tard par tomber sur un de ces grands classiques : le service qui refuse de démarrer après une mise à jour, des erreurs SQLite louches dans , ou pire — l'interface qui tourne mais ne remonte plus aucun heartbeat. Dans 90 % des cas, c'est la base SQLite qui a pris cher, souvent à cause d'un arrêt brutal du conteneur LXC ou d'une migration qui s'est mal passée.\r\n\r\nAvant de paniquer et de tout réinstaller, il y a une série d'étapes à dérouler. Je les mets ici dans l'ordre, parce que l'ordre compte : on commence toujours par le moins destructif.\r\n\r\nPourquoi SQLite et pas un vrai SGBD ?\r\n\r\nPetite parenthèse pour les juniors qui se demanderaient. Uptime Kuma embarque SQLite parce que c'est une appli pensée pour être facile à déployer : pas de serveur de base à installer à côté, pas de credentials à gérer, juste un fichier sur le disque. C'est génial pour démarrer, mais ça a un défaut majeur — SQLite n'aime pas du tout être coupé en plein milieu d'une écriture. Si ton LXC tombe pendant que Kuma écrit un heartbeat, tu peux te retrouver avec un fichier corrompu. D'où l'importance de toujours arrêter proprement le service avant de toucher au fichier.\r\n\r\n1. Arrêter le service proprement\r\n\r\n\r\n\r\nC'est la première chose à faire, toujours. Tant que le service tourne, il a un verrou sur et il continue d'y écrire. Tu peux ouvrir le fichier en lecture avec malgré ce verrou, mais dès que tu veux faire un ou un , tu vas soit avoir une erreur , soit — pire — corrompre encore plus la base si tu forces.\r\n\r\nVérifie que c'est bien arrêté avant de continuer :\r\n\r\n\r\n\r\nTu dois voir . Pas , pas , pas avec un process encore en l'air.\r\n\r\n2. Aller dans le dossier de l'app\r\n\r\nLe script communautaire installe Kuma dans :\r\n\r\n\r\n\r\nDans ce dossier, ce qui nous intéresse c'est le sous-dossier . C'est là que vit tout ce qui compte : le fichier (la base), les uploads, et quelques fichiers de config. Le reste (, , etc.) c'est le code de l'application — tu peux le casser, un ou une réinstallation le remettra en place. Mais , si tu le perds, tu perds toute ta config de monitoring.\r\n\r\n3. Sauvegarder avant de toucher à quoi que ce soit\r\n\r\nRègle d'or de l'ops : on ne touche jamais à une base de données sans avoir une copie au chaud. Jamais.\r\n\r\n\r\n\r\nLe te génère un suffixe du genre . Comme ça si tu fais plusieurs interventions dans la même semaine, tu sais laquelle date de quand, et tu ne risques pas d'écraser une sauvegarde par une autre.\r\n\r\nCette copie embarque :\r\nla base elle-même\r\nles fichiers WAL (, ) si SQLite est en mode Write-Ahead Logging — c'est important de les prendre avec, sinon ta sauvegarde est incomplète\r\nles uploads et certificats si tu en as\r\n\r\nSi tu sautes cette étape et que tu te plantes à l'étape 5 ou 6, tu n'auras aucun moyen de revenir en arrière. Sérieusement, fais-le.\r\n\r\n4. Vérifier l'intégrité de la base\r\n\r\n\r\n\r\n, c'est la commande de diagnostic native de SQLite. Elle parcourt toute la base, vérifie que les index pointent bien sur les bonnes lignes, que les pages ne sont pas corrompues, que les contraintes sont respectées. Deux issues possibles :\r\n* : la base est saine sur le plan structurel. Si Kuma ne démarre toujours pas, le problème vient probablement d'une migration coincée (voir étape 5) ou du code de l'app, pas du fichier.\r\nUne liste d'erreurs : il y a de la corruption. Selon ce qui est touché, on passera à l'étape 5 ou 6.\r\n\r\nPour les juniors qui découvrent SQLite : , c'est le mot-clé que SQLite utilise pour les commandes qui ne sont pas du SQL standard — c'est spécifique à SQLite, tu ne le verras pas dans PostgreSQL ou MySQL.\r\n\r\n5. Supprimer un paramètre de migration corrompu\r\n\r\nSur certaines versions de Kuma (notamment autour des montées de version qui touchent à l'agrégation des heartbeats), il y a un bug connu : l'entrée dans la table se retrouve dans un état incohérent, et le service refuse de démarrer parce qu'il pense être au milieu d'une migration qui n'avance plus.\r\n\r\nLa fix :\r\n\r\n\r\n\r\nCe qu'on fait, c'est qu'on dit à Kuma : \"oublie où tu en étais, repars de zéro sur ce point\". Au redémarrage, il va recréer la clé proprement et relancer la migration depuis le début. C'est non destructif pour tes données de monitoring — on ne touche qu'à un drapeau d'état interne.\r\n\r\nSi ce n'est pas ton problème (clé absente ou suppression sans effet), passe à la suite.\r\n\r\n6. Solution radicale : vider la table \r\n\r\nSi la corruption est concentrée sur l'historique de monitoring (et c'est souvent le cas, parce que c'est la table où Kuma écrit le plus souvent — un INSERT toutes les 20-60 secondes par sonde, ça finit par faire du volume), tu peux la vider :\r\n\r\n\r\n\r\nÀ lire attentivement : cette commande supprime tout l'historique des sondes. Tu perds les graphes de uptime, les SLA calculés sur les 30/90/365 derniers jours, tout. En revanche :\r\ntes sondes sont conservées (table )\r\ntes utilisateurs aussi (table )\r\ntes notifications également (table )\r\nta config générale est intacte (table )\r\n\r\nC'est à utiliser uniquement quand :\r\npointe vers des problèmes sur ou ses index\r\nKuma refuse de démarrer et l'étape 5 n'a rien donné\r\nou plus simplement, ta base a tellement grossi que Kuma rame et que tu acceptes de perdre l'historique pour repartir propre\r\n\r\nTant qu'à faire, profites-en pour faire un derrière, qui va vraiment libérer l'espace disque (un seul ne récupère pas la place sur le disque, il marque juste les pages comme libres pour réutilisation) :\r\n\r\n\r\n\r\n7. Redémarrer le service\r\n\r\n\r\n\r\nEt vérifie qu'il a bien démarré :\r\n\r\n\r\n\r\nTu dois voir . Si tu vois ou si le service redémarre en boucle, ne le laisse pas dans cet état — passe directement à l'étape 8 pour comprendre pourquoi.\r\n\r\n8. Lire les logs\r\n\r\n\r\n\r\nLe cible le service, le fait du (équivalent de ) — les nouvelles lignes s'affichent en temps réel. Laisse tourner pendant deux ou trois minutes, le temps que Kuma rejoue ses migrations, recharge ses sondes, et envoie les premiers heartbeats.\r\n\r\nCe qu'il faut chercher dans les logs :\r\nerreurs SQLite : , , — ça veut dire que t'as encore un problème de fichier, voire de permissions\r\nmigrations bloquées : des messages du genre qui ne sont jamais suivis d'un \r\npermissions : , — typiquement après une intervention faite en root sur des fichiers qui doivent appartenir à un autre utilisateur. Vérifie avec que les fichiers sont bien possédés par l'user qui fait tourner le service\r\nmodules Node manquants : — ça arrive après une mise à jour qui s'est mal passée. La fix, c'est généralement de relancer dans \r\nport déjà utilisé : — tu as un autre process qui squatte le port 3001 (ou celui que tu as configuré)\r\n\r\nPour sortir du , c'est .\r\n\r\nEt après ?\r\n\r\nUne fois que Kuma tourne propre, prends cinq minutes pour mettre en place ce qui t'aurait évité d'arriver ici :\r\n\r\n1. Une sauvegarde régulière de . Un simple cron qui fait du dossier vers un autre serveur, ça suffit largement pour un Kuma perso. Pense à arrêter le service avant le tar, ou utilise qui fait un snapshot cohérent sans devoir couper Kuma.\r\n2. Un monitoring du monitoring. Oui, c'est méta. Mais si Kuma tombe, c'est lui qui t'aurait alerté de la chute de tes autres services — donc personne ne te prévient. Un check externe (UptimeRobot gratuit, healthchecks.io, ou un autre Kuma sur une autre machine) qui ping ton instance, c'est cinq minutes à mettre en place.\r\n3. Garder ta sauvegarde au moins une semaine** avant de la supprimer. Au cas où un effet de bord apparaîtrait quelques jours plus tard.\r\n\r\nEt voilà. Avec ces huit étapes, tu couvres 95 % des cas de Kuma cassé. Pour les 5 % restants — typiquement quand le LXC lui-même a un souci de filesystem — c'est une autre histoire, et il faudra sortir l'artillerie côté Proxmox."},{"uuid":"8da6da4b-5b28-4f67-b6f7-277ee42843ce","slug":"de-zigbee2mqtt-a-proxmox-l-effet-papillon-d-un-switch-defaillant","title":"De Zigbee2MQTT à Proxmox : leffet papillon dun switch défaillant","category":"domotique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2025-05-25 06:01:36","created_at":"2025-05-25 06:01:36","updated_at":"2025-05-25 06:01:36","tags":{"logiciels":["Home Assistant"]},"plain":"Contexte initial\r\n\r\nDepuis plusieurs semaines, je soupçonnais mon coordinateur Zigbee SLZB-06M (Ethernet + PoE) de provoquer des instabilités réseau sous Zigbee2MQTT. Les symptômes étaient clairs : redémarrages en boucle du service, erreurs , commandes Zigbee échouées… Bref, une stack Zigbee instable malgré une configuration soignée.\r\n\r\nJavais tout envisagé : firmware Ember instable, problème dalimentation PoE, bugs dans le bridge UART-to-TCP, saturation du port TCP 6638. Jai même reflashé le dongle et validé la configuration YAML ligne par ligne. Sans succès. Toujours les mêmes erreurs :\r\n\r\n\r\n\r\nJenvisageais déjà de tout remplacer : passer à un dongle USB, revoir le routage, refaire un mesh propre. Et puis...\r\n--\r\n\r\nLincident du lundi matin\r\n\r\nUn blackout complet frappe mon infra : plus aucun service local ou distant ne répond. Proxmox, Zigbee2MQTT, partages NFS, Home Assistant, NAS — tout semble mort. Même laccès Internet est intact, mais tout ce qui repose sur mon réseau interne est figé.\r\n\r\nJisole alors le NAS (la machine hôte centrale qui héberge tout le stockage via Proxmox), le connecte localement via un boîtier dacquisition HDMI. Rien. Écran noir.\r\n\r\nJe commence à douter de tout : le câble DisplayPort ? Le boîtier HDMI ? Le BIOS ? Je teste, redémarre, écoute. Trois bips longs. Rien à l’écran. Jusqu’à ce que je réalise que jattendais une image 1080p… alors que le BIOS sort du 640x480. Je reconfigure OBS (oui, parce que je passe par OBS pour afficher mes périphériques), ajuste la fréquence… et là, miracle :\r\n« Press to enter Setup or to enter Boot Menu »\r\n\r\nSensuivent des erreurs BIOS typiques :\r\n--\r\n\r\nLe coupable n°1 : la pile CMOS\r\n\r\nLa pile bouton est morte. Résultat : perte des paramètres BIOS à chaque redémarrage, y compris le boot sur disque. Je la remplace par une neuve (CR2032 à 3,1V), et tout rentre dans lordre… en apparence.\r\n\r\nJe replace le serveur. Et là, à nouveau : plus rien. Ping muet. Services inaccessibles. Home Assistant muet. Zigbee2MQTT en erreur.\r\n--\r\n\r\nLe vrai coupable : le switch réseau\r\n\r\nUn doute menvahit. Je regarde le switch PoE. Il est éteint. Plus une LED.\r\n\r\nJe le remplace immédiatement. Nouveau switch, même câblage. Et tout revient :\r\n\r\n Proxmox opérationnel\r\n Partages NFS montés\r\n Home Assistant réactif\r\n Zigbee2MQTT sans erreur\r\n--\r\n\r\nLe lien entre les deux incidents\r\n\r\nCest là que tout devient limpide.\r\n\r\n Le switch défaillant provoquait des microcoupures entre les VMs et le stockage.\r\n Les erreurs ECONNRESET de Zigbee2MQTT venaient du lien instable entre le coordinateur Ethernet et le service.\r\n Linstabilité du réseau expliquait les redémarrages en boucle, les commandes Zigbee échouées, les automatisations manquantes.\r\n\r\nEt pendant ce temps, je blâmais le coordinateur Zigbee, le firmware Ember ou un bug MQTT… alors que tout venait dun simple transformateur à 10€ du switch.\r\n--\r\n\r\nBilan\r\n\r\nCe que jai appris :\r\n\r\n Ne jamais sous-estimer un composant “passif” : un switch, une pile, une alimentation.\r\n Un bug réseau peut se déguiser en bug applicatif.\r\n Les microcoupures sont pires que les pannes franches : elles érodent les services sans les faire crasher complètement, rendant le diagnostic flou.\r\n Observer avant dagir, cest vital. Sinon, on démonte tout… pour rien.\r\n--\r\n\r\nEt maintenant ?\r\n\r\nTout est reparti. Le coordinateur Zigbee SLZB-06M fonctionne parfaitement. Plus aucun redémarrage du service. Plus d. Les automatisations sont de retour.\r\n\r\nParfois, cest \"juste\" un switch qu'il faut changer !**"},{"uuid":"6fb27ed4-1374-41f3-9b59-6c9c7a82be72","slug":"guitare-pro","title":"Guitare Pro","category":"Loisirs","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2020-04-17 18:07:28","created_at":"2020-04-17 18:07:28","updated_at":"2020-04-17 18:07:28","tags":[],"plain":"Mon plus grand se plait à réaliser des compositions musicales. Ce n'est pas encore Hans Zimmer, mais il se débrouille bien. En parallèle, il joue du piano. Il doit encore s'entrainer. Le professeur de musique et de composition nous a conseillé d'acheter Guitare Pro pour l'année prochaine. C'est un programme qui fonctionne sous Windows 7 / 8 / 10 et Mac OS X. Je ne sais pas trop si c'est un investissement nécessaire."},{"uuid":"093711bf-4e60-4ea8-ba73-928d2d67776c","slug":"certificats-let-s-encrypt-a-6-jours-faut-il-sauter-le-pas","title":"Certificats Let's Encrypt à 6 jours : faut-il sauter le pas ?","category":"actualité","author":"cedric@abonnel.fr","cover":"cover.svg","published":true,"published_at":"2026-05-07 22:46","created_at":"2026-05-12 08:47:27","updated_at":"2026-05-12 08:59:58","tags":[],"plain":"Guide DevOps / WebOps pour comprendre les certificats à durée de vie courte () et décider si vous devez migrer.\r\n--\r\n\r\nTL;DR\r\n\r\nLet's Encrypt propose désormais au grand public des certificats valides 6 jours (profil ), en plus du classique 90 jours. Pour les certificats sur adresse IP, c'est même obligatoire. La question n'est pas \"est-ce que c'est bien ?\" — techniquement oui — mais \"est-ce que mon infra est prête ?\". Si votre renouvellement automatique fonctionne sans accroc depuis 6 mois, foncez. Sinon, fiabilisez d'abord, migrez ensuite.\r\n--\r\n\r\n1. De quoi on parle\r\n\r\nDepuis janvier 2026, Let's Encrypt émet en disponibilité générale deux nouveautés couplées : les certificats pour adresses IP, et les certificats à durée de vie de 6 jours via un nouveau profil ACME nommé . Certbot 4.0 a introduit le flag pour les sélectionner, et Certbot 5.3 a ajouté pour demander un cert sur IP.\r\n\r\nConcrètement, un certificat a une validité de 6 jours au lieu de 90. Tout le reste — chaîne de confiance, algorithmes, format — est identique. Pour le navigateur, c'est un certificat Let's Encrypt standard.\r\n\r\nLes profils disponibles\r\nProfil | Durée | Usage |\r\n---|---|---|\r\n(défaut) | 90 jours | Tout le monde, par défaut |\r\n| 6 jours | Adopters précoces, certs sur IP (obligatoire) |\r\n| 90 jours | Variante optimisée serveur web (sans clientAuth) |\r\n--\r\n\r\n2. Pourquoi Let's Encrypt pousse vers le court\r\n\r\nQuatre raisons techniques, par ordre d'importance.\r\n\r\n2.1 La révocation TLS est cassée — autant l'éviter\r\n\r\nC'est le vrai sujet. Le mécanisme de révocation des certificats (CRL, OCSP) n'a jamais fonctionné correctement à grande échelle :\r\nOCSP soft-fail : si le serveur OCSP est injoignable, la plupart des navigateurs acceptent quand même le certificat. Un attaquant qui contrôle le réseau bloque l'OCSP et le cert révoqué passe.\r\nOCSP stapling mal configuré sur beaucoup de serveurs.\r\nCRLite, OneCRL : couvertures partielles, déploiement client incohérent.\r\nOCSP retiré : Let's Encrypt a arrêté OCSP en 2025, justement parce que ça ne servait quasiment à rien tout en posant des problèmes de vie privée.\r\n\r\nAvec un cert à 6 jours, la révocation devient cosmétique : on attend l'expiration. La fenêtre d'exploitation d'une clé compromise passe de plusieurs semaines (cert 90 jours, OCSP douteux) à quelques jours maximum.\r\n\r\n2.2 Réduire la fenêtre de compromission\r\n\r\nSi votre clé privée fuite (backup mal protégé, faille serveur, employé qui part avec une copie, vulnérabilité type Heartbleed), l'attaquant peut usurper votre site tant que le cert est valide. À 90 jours, c'est trois mois d'exposition dans le pire cas. À 6 jours, c'est une semaine.\r\n\r\nC'est encore plus critique pour les certs sur IP : une IP peut changer de propriétaire (cloud, VPS recyclé, réattribution FAI). Un cert long pour une IP qui ne vous appartient plus, c'est un risque que LE refuse de prendre — d'où l'obligation du profil court pour cet usage.\r\n\r\n2.3 Forcer une automatisation propre\r\n\r\nPersonne ne renouvelle un cert à la main tous les 6 jours. C'est mécaniquement infaisable. Le profil est donc un filtre qualité : si votre renouvellement n'est pas blindé, vous le saurez vite.\r\n\r\nL'effet de bord positif : ça élimine les pannes classiques type \"le cert a expiré parce que le cron était cassé depuis trois mois et personne ne s'en est rendu compte\". À 6 jours, un cron cassé devient visible immédiatement.\r\n\r\n2.4 Agilité cryptographique\r\n\r\nSi une vulnérabilité majeure impose de déprécier un algorithme en urgence (RSA, transition post-quantique, faille découverte sur SHA-256), un parc avec des certs à 6 jours bascule en une semaine. Un parc 90 jours met trois mois. C'est la raison qui motive aussi le CA/Browser Forum à pousser globalement vers des durées plus courtes (45 jours d'ici 2029 dans la baseline).\r\n--\r\n\r\n3. Pourquoi vous pourriez ne pas migrer\r\n\r\nSoyons honnêtes : pour la plupart des infras web classiques, le 90 jours suffit largement. Le 6 jours a des coûts réels.\r\n\r\n3.1 Pression sur le rate limiting\r\n\r\nLet's Encrypt limite à 300 nouveaux certificats par compte par 3 heures et 5 duplicatas de cert par semaine. Avec des certs 90 jours, vous renouvelez 4 fois par an. Avec des 6 jours, c'est 60 fois par an et par cert. Si vous avez 50 services derrière 50 certs distincts, vous explosez votre budget de requêtes ACME.\r\n\r\nMitigation : regrouper les domaines dans des certs SAN (un seul cert pour , , plutôt que trois certs).\r\n\r\n3.2 Dépendance critique au CA et au réseau\r\n\r\nÀ 90 jours, si Let's Encrypt est down 48h, vous ne le remarquez même pas. À 6 jours, une panne de 48h sur LE et votre fenêtre de renouvellement (typiquement à 1/3 de la durée restante, soit 2 jours), et votre cert expire. Vos services tombent.\r\n\r\nConséquences concrètes :\r\nIl faut un monitoring sérieux de l'expiration des certs (Prometheus blackbox exporter, , etc.).\r\nIl faut un fallback : second client ACME, second account, ou cert de secours d'une autre CA.\r\nIl faut absolument que la résolution DNS et le port 80/443 sortants depuis votre serveur soient fiables.\r\n\r\n3.3 Charge sur les systèmes de déploiement\r\n\r\nChaque renouvellement déclenche : appel ACME, validation HTTP-01 ou DNS-01, écriture des fichiers, rechargement du serveur web (Nginx, Apache, HAProxy, etc.). À 60 fois par an au lieu de 4, ça multiplie par 15 le nombre de reloads.\r\n\r\nSur un serveur web basique, un est gratuit. Sur des architectures plus complexes (load balancers stateful, terminations TLS distribuées, certs poussés vers un CDN, configs multi-nœuds avec Ansible/Salt), chaque renouvellement déclenche une cascade. À évaluer.\r\n\r\n3.4 Logs, audit, conformité\r\n\r\nCertains contextes réglementaires demandent une traçabilité des certificats (PCI-DSS, ISO 27001, HDS). Multiplier par 15 le volume d'événements de renouvellement à archiver et auditer, ça représente du stockage et du tooling à adapter.\r\n\r\n3.5 Le cas \"monitoring TLS externe\"\r\n\r\nSi vous avez des outils tiers (uptime monitors, scanners de conformité) qui vérifient l'expiration de vos certs, ils risquent de hurler en permanence : un cert qui montre toujours \"expire dans 6 jours\" déclenche les alertes \"cert expirant bientôt\" sur la plupart des outils mal configurés. Il faut soit ajuster les seuils, soit changer d'outil.\r\n--\r\n\r\n4. Décision : grille de lecture\r\nSituation | Recommandation |\r\n---|---|\r\nServeurs web classiques, renouvellement Certbot qui marche, < 20 certs | Restez en 90 jours. Le bénéfice marginal ne justifie pas le risque. |\r\nVous gérez des certs sur IP | Pas le choix : est obligatoire. |\r\nArchitecture critique avec rotation de clés agressive (banque, santé, infra publique) | Migrez. Le 6 jours est aligné avec vos exigences de sécurité. |\r\nInfra dev/staging interne | Excellent terrain de test. Migrez d'abord ici pour valider votre pipeline. |\r\nVous avez déjà eu une expiration cert non détectée en prod | Ne migrez pas tout de suite. Fiabilisez d'abord le monitoring et le renouvellement, puis migrez. Sinon vous transformez un incident annuel en incident hebdomadaire. |\r\nVous publiez via reverse proxy unique (un seul cert SAN pour plusieurs services) | Bon candidat. Un seul renouvellement à fiabiliser. |\r\nVous avez un parc hétérogène (Apache + Nginx + HAProxy + Traefik...) avec hooks custom | Auditez chaque hook avant de migrer. C'est là que ça casse. |\r\n--\r\n\r\n5. Comment migrer concrètement (Certbot)\r\n\r\n5.1 Pré-requis\r\n\r\nAvant tout :\r\n\r\n1. Certbot 4.0+ pour , 5.3+ pour , 5.4+ pour avec IP.\r\n2. Un renouvellement automatique opérationnel et vérifié (timer systemd ou cron actif, testé avec ).\r\n3. Un monitoring d'expiration des certs en place. Si vous n'en avez pas, installez-le avant de migrer.\r\n4. Un hook de reload du serveur web qui fonctionne ().\r\n\r\n5.2 Test sur le staging Let's Encrypt\r\n\r\n\r\n\r\nVérifier que le cert obtenu a bien une durée de 6 jours :\r\n\r\n\r\n\r\n5.3 Renouvellement plus fréquent\r\n\r\nPar défaut, Certbot renouvelle quand il reste 1/3 de la durée. Pour un cert 6 jours, ça veut dire renouveler à 2 jours restants. Ça laisse peu de marge en cas de panne. Vous pouvez forcer un renouvellement plus tôt :\r\n\r\n\r\n\r\nLe timer Certbot tourne deux fois par jour par défaut, ce qui est suffisant. Pas besoin de l'accélérer.\r\n\r\n5.4 Cas d'un certificat sur IP\r\n\r\n\r\n\r\nNote importante : Certbot ne sait pas encore installer automatiquement les certs IP dans Nginx ou Apache. Il faut éditer la config manuellement pour pointer vers et , et configurer un pour le reload.\r\n\r\n5.5 Plan de bascule recommandé\r\n\r\n1. Semaine 1-2 : un domaine non critique (un sous-domaine de test, un service interne) en . Surveillez les renouvellements.\r\n2. Semaine 3-4 : étendez à la moitié de votre dev/staging.\r\n3. Semaine 5-6 : migration progressive en prod, en commençant par les services les moins critiques.\r\n4. À tout moment : possibilité de retour arrière en supprimant du fichier de config Certbot dans .\r\n--\r\n\r\n6. Pièges à éviter\r\nNe migrez pas tout en même temps. Si votre hook de reload a un bug, vous le découvrez sur un seul service, pas sur 50.\r\nNe désactivez pas le monitoring d'expiration sous prétexte que c'est automatisé. L'automatisation peut casser silencieusement. Un check externe qui hurle à J-2 reste indispensable.\r\nAttention aux secrets stockés dans des configs autres que Certbot. Si vous avez des certs poussés manuellement vers un CDN, un load balancer cloud ou un firewall TLS-inspectant, le passage à 6 jours impose d'automatiser cette propagation aussi.\r\nPas de cert IP pour un service exposé publiquement à long terme. Si l'IP change, le cert devient inutilisable instantanément. Préférez le DNS quand c'est possible.\r\nVérifiez votre client ACME. Tous les clients ACME ne supportent pas encore les profils. acme.sh, Caddy, lego, Traefik : checkez la version. Certbot 4.0 minimum.\r\n--\r\n\r\n7. Verdict\r\n\r\nLe profil est techniquement supérieur au 90 jours sur le plan sécuritaire. Mais il déplace le coût : moins de risques liés aux clés compromises et à la révocation cassée, plus de risques liés à la chaîne de renouvellement.\r\n\r\nLa règle simple : si votre renouvellement automatique est fiable, migrez. Sinon, fiabilisez-le d'abord — la migration n'en sera que la conséquence naturelle.\r\n\r\nPour la majorité des infras web auto-hébergées (typiquement, un Proxmox + reverse proxy + une dizaine de services derrière), le 90 jours reste un excellent compromis. Le devient pertinent quand :\r\nVous avez besoin de certs sur IP (obligatoire).\r\nVous exploitez des services à forte exigence de sécurité (clés très sensibles).\r\nVous voulez tester votre résilience opérationnelle (le 6 jours est un excellent test de fiabilité de votre stack).\r\n\r\nLe reste du temps, gardez le 90 jours, dormez tranquille, et ressortez ce document quand le CA/Browser Forum imposera 45 jours par défaut (vers 2027-2028).\r\n--\r\n\r\nSources\r\nLet's Encrypt — Six-Day and IP Address Certificates Available in Certbot (mars 2026)\r\nLet's Encrypt — 6-day and IP address certs in general availability (janvier 2026)\r\nDocumentation Certbot — Hooks\r\nCA/Browser Forum Baseline Requirements"},{"uuid":"55a2c5eb-74d2-4c58-a7d1-19d1d824adf1","slug":"incident-acegrp-lan-2-tout-s-explique-enfin","title":"Incident acegrp.lan (2) : Tout sexplique enfin !","category":"domotique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2025-04-30 18:01:00","created_at":"2025-04-30 18:01:00","updated_at":"2025-05-01 04:30:09","tags":[],"plain":"Nous sommes lundi matin. Le silence numérique est assourdissant. Aucun service interne ne répond, et les plateformes A5L sur Internet sont totalement inaccessibles. Rien ne fonctionne. Cest un black-out complet. Le genre de panne qui érode patiemment ton calme et ton raisonnement, heure après heure. La veille, javais déjà tout tenté ou presque, sans succès. Et maintenant, le temps presse. Je décide de rapatrier la machine hôte qui fait tourner le NAS, la pièce centrale du puzzle. Ce mini-serveur, habituellement discret et stable, est suspect numéro un. Peut-être quen le branchant localement, jaurai enfin un retour vidéo. Je tente une nouvelle approche : je le connecte à un boîtier dacquisition HDMI, en utilisant simplement un câble DisplayPort vers HDMI. Lidée est de faire apparaître quelque chose, nimporte quoi, dans OBS, sur mon poste de travail. Mais tout ce que jobtiens, cest un écran noir. Rien. Pas un pixel.\r\n\r\nÀ cet instant, tout devient flou. Je commence à remettre en question chaque élément de la chaîne. Le boîtier dacquisition : fonctionne-t-il réellement ? Le câble : est-il compatible ? Le port DisplayPort : est-il actif au démarrage ? Et la machine elle-même ? Est-ce quelle boote seulement ? Je doute de tout. Ce sont les moments les plus pénibles. Quand la panne est silencieuse. Quand tout semble à la fois en cause, et que rien ne parle. Cest dans ces phases de doute profond que je suis le plus vulnérable. Jai souvent réagi à linstinct dans ces moments-là, en allant droit vers des actions irréversibles. Formater un disque, réinstaller un système, démonter un châssis complet… sans prendre le temps danalyser, de poser les bonnes questions. Je le sais, je lai déjà vécu, mais aujourdhui, jessaie de faire mieux. Je prends une pause. Jobserve. J’écoute.\r\n\r\nJe redémarre plusieurs fois la machine, et à chaque fois, jentends trois bips, espacés, lents, presque inquiétants. Le disque dur semble tournoyer, sans conviction. Pas de réelle activité. L’écran reste noir. Et cest là que je me souviens dun paramètre que je nai pas vérifié : la configuration de sortie dans OBS. Jouvre les paramètres dentrée vidéo, et je me rends compte que la résolution, la fréquence, tout est réglé comme si jattendais le signal dune console de jeu en 1080p. Mais un BIOS ? Il sort en 640x480, peut-être 800x600 dans le meilleur des cas… Je change les réglages, ajuste la fréquence, et je relance.\r\n\r\nEt là, comme un miracle numérique, limage apparaît. Épurée. Grise. En anglais. \r\n« Press <F2> to enter Setup or <F12> to enter Boot Menu. » \r\nEt puis senchaînent les erreurs : \r\nERROR - POST - Invalid date / time \r\nERROR - POST - Bad RTC Battery \r\nBIOS Settings defaults loaded. \r\nLa sentence est claire : la pile CMOS est à plat. Elle ne tient plus la date, plus les réglages, plus rien. Cest elle qui empêchait la machine de démarrer correctement, de retrouver ses marques. Quelle absurdité ! Une simple pile bouton de quelques grammes, dans un PC allumé 24h/24 depuis des années. Mais elle a rendu l’âme, discrètement, en silence, et tout sest effondré autour.\r\n\r\nJe coupe lalimentation, jouvre le boîtier, je localise la pile. Je la retire et la teste au multimètre : 2,5 volts. Cest insuffisant. Je la remplace immédiatement par une neuve, une bonne CR2032 à 3,1 volts. Je remonte le tout, referme le boîtier, rebranche les câbles, et relance. Et là, la magie opère : l’écran Proxmox saffiche, le système boote, et — enfin — la machine répond au ping. Cest le genre de petit miracle qui donne envie de se lever et dapplaudir dans une pièce vide.\r\n\r\nJe replace donc le serveur à son emplacement habituel, je le redémarre avec confiance… et là, plus rien. Ping muet. Silence réseau. J’étrangle un soupir. Et si c’était… autre chose ? Mon regard se pose sur le switch réseau. Éteint. Plus une LED. Je débranche, rebranche, rien. Je prends un switch de rechange, je le connecte à la place du défaillant, je relie chaque câble avec soin. Et là, tous les services reviennent. Ping OK. Partages NFS OK. Proxmox OK. Le réseau reprend vie comme si de rien n’était.\r\n\r\nLautopsie du switch est formelle : alimentation HS. Ce petit boîtier discret avait probablement commencé à agoniser lentement depuis plusieurs jours, provoquant des microcoupures entre le NAS et le serveur principal. Les VM avaient perdu laccès à leur stockage. Les partages s’étaient effondrés. Et tout ça avait été pris pour un bug de Proxmox, un problème de VM… alors que tout partait dune alimentation à 10 euros.\r\n\r\nAu final, tout sexplique. La pile. Le switch. Le lien entre les deux. \r\nEt moi, au milieu, à jongler entre câbles, BIOS, doutes et bips. \r\nUne tempête technique partie dun simple maillon faible."}]