Renouvellement du certificat Let’s Encrypt dans Home Assistant
Le 14/09/2024
Votre certificat Let’s Encrypt à une validité de 90 jours. Vous devez le renouveler avant son expiration. Si cette date est dépassée, pas d’affolement, vous pouvez continuer le tuto. Si vous n'avez pas encore de certificat, aller voir ce tuto
Let’s Encrypt ne doit pas être démarré, sinon, la partie Automatisation ne fonctionnera pas. Décocher donc la case "Lancer au démarrage".
Le but de ce tuto est de renouveler le certificat de Let’s Encrypt grâce à une automatisation de Home Assistant.
Les conditions :- Choisir une heure pour lancer l'automatisation: 8h06:45 (Let’s Encrypt recommande de ne pas utiliser des moments précis de la journée, tels que minuit UTC, ou la première seconde de chaque heure ou minute).
- Tous les samedis (si problème, je suis à la maison).
- Si le certificat a une validité de moins de 30 jours. Obligation d'utiliser l’intégration Expiration du Certificat.
- Démarrer Let’s Encrypt.
- M'avertir que mon certificat vient de changer.
- Redémarrer mon Home Assistant.
Installation de l’intégration "Expiration du Certificat"
Cette intégration dépends du cloud, vous devez avoir un accès à votre homme assistant depuis l'exterieur.
Dans "Paramètre" puis "Appareils et Services" cliquer dans l'onglet Intégrations pour enfin Ajouter une intégration. Chercher "Expiration du Certificat".
Configuration de l'Expiration du Certificat:
Cliquer dans votre nouvelle intégration, puis ajouter une entrée.Renseigner les deux champs suivant votre configuration.
- Hôte: peaudecerf.fr (votre non de domaine qui pointe vers Home Assistant)
- Port: 8123 (votre port accessible depuis l’extérieur, 8123 par défaut)
Toujours dans l’intégration Expiration du certificat, cliquer dans "1 entité" nouvellement créée pour l'afficher. Récupérer l'ID de votre nouveau sensor (sensor.peaudecerf_fr_8123_cert_expiry). Il commence toujours par sensor."votre_nom_de_domaine_fr"_"votre-port"__cert_expiry. Il vous servira après, pour votre automatisation.
Création de l'automatisation:
- Cliquer dans Paramètre puis dans l'onglet Automatisation et scènes et enfin dans CRÉER UNE AUTOMATISATION.- Choisir Créer une nouvelle automatisation. Éditer cette page en Yaml: Cliquer en haut à droite, sur les trois points verticaux et choisir Modifier en YAML. Copier/Coller le code yaml ci dessous en modifiant le sensor (sensor.peaudecerf_fr_8123_cert_expiry) par le votre précédemment récupéré.
# alias: Renouvellement certificat
# description: Renouvellement du certificat le samedi à 11h33:44, si il reste moins de 30 jours.
trigger:
- platform: time
at: "11:33:44"
condition:
- condition: time
weekday:
- sat
- condition: template
value_template: >-
{{ (states('sensor.peaudecerf_fr_8123_cert_expiry') | as_datetime or
today_at()) - timedelta(days=30) < today_at()}}
action:
- metadata: {}
data:
addon: core_letsencrypt
action: hassio.addon_start
- delay:
hours: 0
minutes: 3
seconds: 0
milliseconds: 0
# - action: notify.mail_tuto
# metadata: {}
# data:
# title: Renouvellement du certificat
# message: |
# Hello,
#
# Le {{now().strftime('%d/%m/%Y')}}, le certificat vient d’être revalidé.
# Un reboot va être effectué dans 3 minutes.
#
# By
# target:
- delay:
hours: 0
minutes: 3
seconds: 0
milliseconds: 0
- action: hassio.host_reboot
metadata: {}
data: {}
mode: single
Valider votre automatisation, nommer là, donner lui une description et ENREGISTRER.
Il reste plus qu'à attendre que votre certificat ait moins de 30 jours de validité pour qu'il soit automatiquement changé.
- Le template:
"states('sensor.peaudecerf_fr_8123_cert_expiry') | as_datetime" est la date de la fin de votre certificat.
"or today_at" ou la date d'aujourd'hui (si la date de votre certificat est inconnue).
"- timedelta(days=30)" moins trente jours.
Le résultat est vraie ou faux et permet de passer à l'étape suivante. - Démarrer Let’s Encrypt pour demander le renouvellement du certificat
- Le delai est important. Ne pas faire de reboot avant 4 minutes.
- Possibilité d'envoyer un mail pour information.
- Reboot du système pour utilisation du nouveau certificat.