Aller au contenu principal

Intégration domotique Certificate Expiry, gratuite et open source

Intégration Certificate Expiry pour Gladys Assistant

Surveillez les certificats TLS de vos sites et appareils, et soyez averti avant expiration.

Surveillez depuis Gladys les certificats TLS de vos sites web, NAS, box, reverse proxy ou serveur mail, et soyez prévenu avant leur expiration.

L'intégration se connecte directement à chaque hôte, depuis votre machine Gladys : une négociation TLS, le certificat est lu, la connexion est fermée. Aucune requête HTTP, aucun compte, aucun service cloud. Elle fonctionne aussi bien pour les sites publics que pour les appareils de votre réseau local.

Installation​

  1. Installez l'intégration depuis le store Gladys.
  2. Dans Configuration, remplissez le champ Hôtes, puis enregistrez.
  3. Ouvrez l'onglet Découverte : chaque hôte y apparaît comme un appareil. Créez ceux que vous voulez garder dans Gladys.

Le champ Hôtes​

Les hôtes sont séparés par des virgules, des espaces ou des retours à la ligne. Chaque entrée peut être :

Vous tapezVérifié sur
exemple.frexemple.fr, port 443
nas.local:5001nas.local, port 5001
192.168.1.1:8443192.168.1.1, port 8443
[fe80::1]:8443IPv6 fe80::1, port 8443
https://exemple.fr/loginexemple.fr, port 443 (le chemin est ignoré)

Une entrée qui n'est pas un hôte est ignorée ; le bouton Vérifier maintenant liste les entrées ignorées. 100 hôtes au maximum.

Autres réglages​

RéglageDéfautRôle
Seuil d'alerte (jours)30À partir de ce nombre de jours restants, le certificat expire bientôt.
Seuil critique (jours)7À partir de ce nombre de jours restants, il est critique.
Intervalle de vérification (heures)12Fréquence de vérification de chaque hôte. Une vérification a aussi lieu au démarrage et à l'enregistrement de la configuration.
Délai de connexion (s)10Au-delà, l'hôte est injoignable.
Signaler les certificats non reconnusactivéSignale aussi un certificat auto-signé, signé par une autorité privée, ou qui ne correspond pas au nom de l'hôte. Désactivez-le si vos appareils locaux utilisent des certificats auto-signés : leur expiration reste surveillée.

Ce que vous obtenez​

Un appareil par hôte​

FonctionnalitéContenu
Days remainingJours entiers avant expiration. 0 le dernier jour, négatif une fois expiré. Gardé en historique, pour en faire un graphique.
Expiry dateDate et heure d'expiration, en UTC.
IssuerQui a signé le certificat (par ex. R11 pour Let's Encrypt).

La carte de l'appareil affiche aussi un badge de connexion : vert quand l'hôte a répondu, rouge quand il est injoignable, avec un point orange quand le certificat n'est pas reconnu (la raison est dans l'infobulle).

Quand un hôte ne répond pas, ses dernières valeurs sont gardées et les jours restants continuent de décompter depuis la dernière date d'expiration lue : une alerte n'est pas manquée parce que le serveur était éteint ce jour-là.

Boutons de l'écran Configuration​

  • Vérifier maintenant : vérifie tous les hôtes et liste le résultat.
  • Inspecter un hôte : lit le certificat de n'importe quel hôte, surveillé ou non, et l'affiche en entier : noms couverts, émetteur, dates, confiance, version TLS, empreinte SHA-256. Pratique avant d'ajouter un hôte, ou après avoir renouvelé un certificat.

Widget « Certificats » du tableau de bord​

Trois compteurs (valides, à renouveler, problèmes), les certificats triés par urgence, et un bouton Vérifier. Réglages par widget : nombre de lignes affichées (1 à 10), et « Seulement ce qui demande attention » pour masquer les certificats en ordre.

Déclencheurs de scène​

Chaque déclencheur se déclenche une fois par changement, pas à chaque vérification.

DéclencheurQuandFiltresVariables
Un certificat arrive à expirationUn certificat entre dans la période d'alerte, la période critique, ou expire.certificat, niveauhost, level, days_remaining, expires_at, issuer
Un certificat a été renouveléUn hôte présente un nouveau certificat qui dure plus longtemps que le précédent.certificathost, days_remaining, expires_at, previous_expires_at, issuer
La vérification d'un certificat a échouéUn hôte ne répond plus, ou présente un certificat non reconnu.certificat, problèmehost, reason, error, message

Exemple : « Quand un certificat arrive à expiration, niveau Critique → envoyez-moi un message : {{triggerEvent.data.host}} expire dans {{triggerEvent.data.days_remaining}} jours ».

Vous pouvez aussi utiliser le déclencheur standard état d'un appareil sur la fonctionnalité Days remaining (par exemple « inférieur à 15 »).

L'intégration garde le dernier état de chaque certificat dans son volume de données : un redémarrage de Gladys ne renvoie pas les mêmes alertes.

Actions de scène​

ActionRésultat (pour les actions suivantes)
Vérifier un certificatdays_remaining, expires_at, level, reachable, trusted
Vérifier tous les certificatschecked, expiring, problems

level vaut ok, warning, critical, expired, unreachable ou untrusted. Une vérification lancée par une action de scène ne déclenche jamais de déclencheur elle-même (une scène pourrait sinon se relancer toute seule) ; la prochaine vérification automatique le fait.

Limites​

  • Seul le TLS direct est vérifié (HTTPS, IMAPS 993, SMTPS 465, LDAPS 636…). Les services qui démarrent en clair puis passent en TLS (STARTTLS sur SMTP 587 ou IMAP 143) ne sont pas pris en charge.
  • La confiance est vérifiée avec les autorités publiques connues de Node.js. Une autorité privée (votre propre AC) apparaît « non reconnue » : désactivez Signaler les certificats non reconnus dans ce cas.
  • Les jours restants et la date d'expiration sont en UTC.

Dépannage​

  • Injoignable (ENOTFOUND) : le nom ne se résout pas depuis la machine Gladys. Essayez l'adresse IP.
  • Injoignable (ETIMEDOUT / ECONNREFUSED) : rien ne répond sur ce port, ou un pare-feu le bloque. Vérifiez le port.
  • Non reconnu (DEPTH_ZERO_SELF_SIGNED_CERT, SELF_SIGNED_CERT_IN_CHAIN) : certificat auto-signé ou autorité privée.
  • Non reconnu (ERR_TLS_CERT_ALTNAME_INVALID) : le certificat ne couvre pas le nom tapé. Inspecter un hôte montre les noms qu'il couvre.
  • Non reconnu (UNABLE_TO_VERIFY_LEAF_SIGNATURE) : le serveur n'envoie pas son certificat intermédiaire. Corrigez la chaîne de certificats sur le serveur.

Paramètres de configuration​

Voici les paramètres demandés par Certificate Expiry dans son écran de configuration dans Gladys.

ParamètreTypeObligatoireDescription
Pour commencersectionNonListez les hôtes dont vous voulez surveiller le certificat : sites web, NAS, box, reverse proxy, serveur mail... Chaque hôte devient un appareil dans l'onglet Découverte, avec ses jours restants, sa date d'expiration et son émetteur. L'intégration se connecte directement à chaque hôte (une négociation TLS, aucune requête HTTP) et n'a besoin d'aucun compte ni service cloud.
HôtesstringOuiSéparés par des virgules ou des espaces. Un nom, une adresse IP, nom:port ou une URL https:// collée ; le port est 443 s'il n'est pas indiqué. IPv6 : [fe80::1]:8443.
Seuil d'alerte (jours)numberNonUn certificat qui a ce nombre de jours restants ou moins « expire bientôt ».
Seuil critique (jours)numberNonUn certificat qui a ce nombre de jours restants ou moins est « critique ». Plus bas que le seuil d'alerte.
Intervalle de vérification (heures)numberNonFréquence de vérification de chaque hôte. Une vérification a aussi lieu au démarrage et à l'enregistrement de la configuration.
Délai de connexion (s)numberNonTemps accordé pour joindre un hôte et lire son certificat. Au-delà, l'hôte est injoignable.
Signaler les certificats non reconnusbooleanNonSignale aussi un certificat qu'aucune autorité publique n'a signé (auto-signé, AC privée) ou qui ne correspond pas au nom de l'hôte. Désactivez-le si vos appareils locaux utilisent des certificats auto-signés : leur expiration reste surveillée.

Comment installer Certificate Expiry dans Gladys​

  1. Dans Gladys, ouvrez Intégrations : Certificate Expiry apparaît dans le catalogue, aux côtés des intégrations natives, avec un badge communautaire.
  2. Cliquez sur Installer. Gladys télécharge l'image Docker (ghcr.io/prohand/gladys-certificatexpiry:1.0.1), la démarre dans un bac à sable isolé du cœur, et génère l'interface de l'intégration (appareils, découverte et configuration).
  3. Ouvrez l'écran Configuration de l'intégration, remplissez les paramètres, puis enregistrez.
  4. Vous pouvez aussi l'installer directement depuis l'URL de son dépôt : https://github.com/prohand/gladys-certificatexpiry.

Certificate Expiry nécessite Gladys >=5.1.0. Le catalogue dans Gladys se rafraîchit toutes les heures : une nouvelle version est donc disponible au plus tard une heure après sa sortie.

Vous n'utilisez pas encore Gladys ? C'est gratuit et open source : suivez le guide d'installation pour démarrer.

À propos des intégrations externes​

Certificate Expiry est une intégration externe : une intégration communautaire empaquetée dans un conteneur Docker et publiée sur GitHub, que Gladys installe en un clic et exécute dans un bac à sable isolé de son cœur. Elle est publiée et maintenue par prohand, et non par l'équipe cœur de Gladys.

Inscrivez-vous à la newsletter Gladys Assistant

Quelques emails par mois sur les nouveautés et l'actualité du projet. Envoyés par Pierre-Gilles Leymarie, le fondateur du projet. Désinscription possible à tout moment 🙂