Skip to content
Menu
  • Accueil
  • A propos
Zorio's Hack

Recevoir une notification Gotify lors de l’expiration d’un certificat

Posted on 30 août 202230 août 2022

J’ai un problème avec mon NAS Synology. Lors de l’expiration d’un certificat, aucune notification n’est émise. Ce n’est même pas prévu par dans les paramètres.

J’utilise des certificats Let’s Encrypt mais pour des raisons techniques, ils ne sont pas générés par mon Synology. Du coup, à chaque renouvellement, je dois importer les nouveaux certificats sur mon NAS.
Même en notant la date d’expiration dans mon agenda, cela provoque des oublis et du coup des problèmes d’accès pour certains logiciels.

J’ai donc décidé de faire un script qui vérifie la date d’expiration d’un certificat et qui m’envoie une notification directement sur Gotify pour m’alerter du temps qu’il reste avant de devoir remplacer le certificat.

  • Certificat déjà expiré
  • 24 heures restantes
  • 2 jours restant
  • 5 jours restant
  • 10 jours restant

À adapter au besoin bien évidemment

#!/bin/bash

certificat=/usr/certificate/example.com/cert.pem
gotify_url="https://gotify.example.com/message?token=xxxxx"
gotify_title="Certificat Synology"

function check_certificat () {
	nombre_jour=$((${1}*86400))
	if openssl x509 -checkend ${nombre_jour} -noout -in $certificat; then
		return 1
	else
		return 0
	fi
}

function notification () {
	curl $gotify_url -F "title=${gotify_title}" -F "message=${1}"
}

# Certificat déjà expiré ?
if check_certificat 0; then
	notification "Certificat expiré"
# 1 jour
elif check_certificat 1; then
	notification "Moins de 24 heures avant expiration du certificat"
# 2 jours
elif check_certificat 2; then
	notification "Deux jours restant avant expiration du certificat"
# 5 jours
elif check_certificat 5; then
	notification "Cinq jours restant avant expiration du certificat"
# 10 jours
elif check_certificat 10; then
	notification "Dix jours restant avant expiration du certificat"
fi
Lien GitHub Gist

J’ai en suite créé une tache planifiée quotidienne sur le NAS (avec les droits root pour pouvoir accéder aux certificats du système).

Pour info sur un NAS Synology, les certificats sont stockés dans /usr/syno/etc/certificate/_archive/xxxx/*.pem

Il existe aussi des scripts ou des outils (comme Uptime Kuma) permettant de connaitre la date d’expiration d’un certificat depuis une simple requête HTTPS. Dans mon cas, le certificat n’est pas accessible depuis le web.

Pour les personnes qui se poseraient la question, j’ai tenté de faire un script pour remplacer directement les certificats enregistrés sur le Syno mais sans succès (trop de contrainte).

En espérant que ce script sera utile à d’autre.

Laisser un commentaire Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Articles récents

  • Recevoir une notification Gotify lors de l’expiration d’un certificat
  • Installer TPM 2.0 pour libvirt/Qemu
  • Android Auto n’est pas pensé pour fonctionner sans fil
  • Notification Synology sur une instance Gotify
  • Pourquoi j’ai viré Mac OS pour Linux

Archives

  • août 2022
  • juin 2022
  • mai 2022
  • avril 2022
  • novembre 2021
  • octobre 2021

Catégories

  • Brève
  • Edito
  • Non classé
  • Tuto
©2023 Zorio's Hack | WordPress Theme by Superbthemes.com