Documentation

Canaux de notification

SSLTrackr peut vous notifier via plusieurs canaux lorsque vos certificats SSL sont sur le point d'expirer, ont expiré, ou lorsqu'un domaine devient inaccessible.

Chaque canal est un simple point de notification lié à votre compte. Les seuils d'alerte se configurent par domaine : sur la page détail de chaque domaine, vous abonnez des canaux et choisissez quels seuils déclenchent les notifications. Vous pouvez configurer plusieurs canaux du même type.

En plus des canaux externes, chaque alerte génère automatiquement une notification in-app visible dans la barre latérale. Cela ne peut pas être désactivé.

Email

Envoie un email HTML via Brevo (SMTP) avec la sévérité de l'alerte, le hostname, la date d'expiration et le nombre de jours restants.

FieldExample
LibelléMy email alerts
Adresse emailops@example.com

SMS

Envoie un SMS de 160 caractères via Brevo. Lors de l'abonnement d'un canal SMS à un domaine, seuls les seuils 3 jours, 1 jour et expiré (0) sont disponibles par défaut pour éviter des coûts excessifs.

Le numéro de téléphone doit inclure le préfixe international (ex : +33 pour la France, +1 pour les USA).

Slack

Publie un message riche dans un canal Slack via Incoming Webhook, avec une barre de couleur selon la sévérité (bleu = info, orange = avertissement, rouge = critique).

Setup

  1. Allez sur https://api.slack.com/apps et cliquez sur Create New App
  2. Choisissez From scratch, nommez-la (ex : SSLTrackr) et sélectionnez votre workspace
  3. Dans le menu de gauche, cliquez sur Incoming Webhooks
  4. Activez Activate Incoming Webhooks sur On
  5. Cliquez sur Add New Webhook to Workspace
  6. Sélectionnez le canal où les alertes seront publiées (ex : #ssl-alerts) et cliquez sur Allow
  7. Copiez l'URL du Webhook et collez-la dans SSLTrackr

L'URL ressemble à : https://hooks.slack.com/services/T.../B.../xxxx

Webhook

Envoie une requête POST JSON signée vers n'importe quel endpoint HTTPS. Chaque requête est signée avec HMAC-SHA256 pour vérifier l'authenticité.

Le secret HMAC doit contenir au moins 16 caractères.

En-tête de signature

X-SSLTrackr-Signature: sha256=<hex-encoded HMAC-SHA256>

Format du payload

Exemple de payload :

{
  "alert_type": "ssl_expiry",
  "hostname": "example.com",
  "severity": "warning",
  "title": "example.com — SSL certificate expires in 30 days",
  "message": "The SSL certificate for example.com expires on 2026-03-21. 30 days remaining.",
  "threshold_days": 30,
  "triggered_at": "2026-02-19T12:00:00.000Z"
}

Types d'alertes

alert_typethreshold_daysDescription
ssl_expiry60, 30, 14, 7, 3, 1Le certificat expire dans N jours
ssl_expired0Le certificat a expiré
domain_unreachablenullDomaine inaccessible depuis 3+ vérifications consécutives

Niveaux de sévérité

SeverityCondition
infoPlus de 30 jours restants
warning8 à 30 jours restants
critical7 jours ou moins / expiré / inaccessible

Vérification de la signature

La signature HMAC est calculée sur le corps JSON brut avec votre secret. Vérifiez toujours la signature avant de traiter le payload.

Node.js

const crypto = require("crypto");

app.post("/webhook", express.raw({ type: "application/json" }), (req, res) => {
  const signature = req.headers["x-sslexpirealert-signature"];
  const expected = "sha256=" + crypto
    .createHmac("sha256", process.env.WEBHOOK_SECRET)
    .update(req.body)
    .digest("hex");
  if (signature !== expected) return res.status(401).send("Invalid signature");
  const payload = JSON.parse(req.body);
  // Handle the alert...
  res.status(200).send("OK");
});

Python

import hmac, hashlib

def verify(body: bytes, secret: str, header: str) -> bool:
    expected = hmac.new(secret.encode(), body, hashlib.sha256).hexdigest()
    return header == f"sha256={expected}"

Notifications Push

Recevez des notifications natives directement sur votre navigateur ou appareil mobile. Les notifications push fonctionnent même lorsque l'application n'est pas ouverte.

Prérequis : HTTPS, navigateur compatible, permission de notification accordée
Chaque abonnement push est lié à un navigateur/appareil spécifique. Activez push sur chaque appareil où vous souhaitez recevoir des alertes.

Seuils d'alerte

Sur la page détail de chaque domaine, vous abonnez un canal et sélectionnez les seuils qui déclenchent les notifications. Chaque canal peut avoir des seuils différents par domaine. Une seule alerte est envoyée par seuil et par certificat.

  • 60 jours — Avertissement précoce
  • 30 jours — Renouvellement recommandé
  • 14 jours — Renouvellement fortement recommandé
  • 7 jours — Urgent, renouvellement nécessaire bientôt
  • 3 jours — Critique, action immédiate requise
  • 1 jour — Dernière chance avant expiration
  • Expiré — Le certificat a déjà expiré

Déduplication

La même alerte ne sera pas envoyée deux fois pour le même seuil tant que le certificat n'est pas renouvelé (détecté via le changement de numéro de série).