Image de la famille Peaudecerf

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.
Les actions:
  • 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.
Add Certificate Expiry integration

 

  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)
VALIDER et TERMINER.

Voir copie d'écran.

Configuration de l’intégration <em>Expiration du certificat</em>

  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: Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.
  - 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é.

Quelques explications:
  • 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.

Ajouter un commentaire