Alors voilà, j’avais le renouvellement de mon Certificat Let’s Encrypt à faire et j’ai galéré un maximum hier après midi pour le faire car je ne retrouvais rien de complet et simple.
C’est pour ça que je me permet de vous proposer ce Tuto dans lequel j’ai ajouté le renouvellement automatique.
A noter : pour le renouvellement, je ne saurais que dans 60 jours si ça fonctionne vraiment bien (mais je ne vois pas pourquoi ça ne fonctionnerait pas)
Celui-ci existe peut-être déjà, mais moi, je ne suis pas tombé dessus, alors voici mon Tuto :
Let’s Encrypt installation et renouvellement pour votre nom de domaine
[Installation]
1 - Avoir un nom de domaine ou de sous domaine pointant vers l’ip extérieur de votre connexion internet.
(NB : ne pas être sur un partage d’adresse IP, c’est mieux je pense)
2 - Installer le module complémentaire Let’s Encrypt
3 - Paramétrer Let’s Encrypt
Dans l’onglet configure renseigner :
- le nom de domaine (MonNomDomaine.fr) ou sous domaine (HomeAssistant.MonNomDomaine.fr)
- une adresse mail où vous recevrez les alertes en cas d’expiration de votre certificat
- Le nom du fichier clé de certificat (privkey.pem : pourquoi le changer ?)
- Le nom du fichier certificat (fullchain.pem : pourquoi le changer ?)
- la challenge: cocher http (dns serait probablement pour un domaine que vous ne géré pas vous même - exemple : domaine Freebox Os)
(à ce moment là cliquer sur le bouton Enregistrer de la partie « Options » si ça fait quelque chose, c’est pas grave) - Dans la partie réseau, laisser 80 (c’est la partie que le n’aime pas, mais je n’ai pas trouvé comment changer çà pour que ça fonctionne)
(Si besoin cliquer sur le bouton Enregistrer de la partie « Réseau »)
4 - Rerouter les ports 8123 et 80 vers votre machine Home Assistant (çà dépend de votre fournisseur d’accès internet)
(un redémarrage de votre box internet est peut-être nécessaire)
(NB : je souhaitais ne pas rerouter le port 80, mais à chaque fois que j’ai tenté, ceci bloquait le transfert des fichiers .pem et donc bloquait la création du certificat)
5 - démarrer le module complémentaire Let’s Encrypt
6 - Vérifier la création du certificat en allant sur l’onglet journal et en cliquant régulièrement sur « Actualiser »
(En lisant les lignes vous devriez voir que votre certificat est créé)
(Ceci veut dire que les fichiers privkey.pem et fullchain.pem sont bien présents dans le répertoire /ssl)
7 - Paramétrer Home Assistant en ajoutant les lignes suivantes dans le fichier configuration.yaml
http:
ssl_certificate: /ssl/fullchain.pem
ssl_key: /ssl/privkey.pem
De plus si vous souhaitez vous protéger des intrusions, vous pouvez paramétrer le bannissement d’adresses avec ces lignes :
ip_ban_enabled: true
login_attempts_threshold: 10
Parfois, on vous parle des lignes suivantes :
homeassistant:
external_url: https://HomeAssistant.MonNomDomaine.fr:8123
internal_url: http://homeassistant.local:8123
Mais, je n’ai toujours pas compris à quoi ça servait donc pour moi, il ne faut pas les mettre,
surtout que ceci bloque les paramètres dans HAOS : Paramètres > Système > Général
8 - Redémarrer Home Assistant
9 - Vérifier dans votre explorateur préféré votre nouvelle adresse : https://HomeAssistant.MonNomDomaine.fr:8123
(En fonction de votre navigateur, une fois connecté, vérifier la date de fin de certification de votre adresse)
[Renouvellement]
1 - Installer l’intégration « Expiration du certificat » pour récupérer la date d’expiration du certificat
En allant sur la page Certificate Expiry - Home Assistant
2 - Cliquer sur le bouton bleu « Add intégration to » pour installer l’intégration dans Home Assistant
(renseigner votre adresse HomeAssistant.MonNomDomaine.fr et le port 8123)
3 - Installer le blueprint « Renew Let’s Encrypt Certificate » pour paramétrer le renouvellement,
En allant sur la page Blueprint for automatic renewal of a Let's Encrypt certificate - Blueprints Exchange - Home Assistant Community
4 - Cliquer sur le bouton bleu « Import Blueprint » et continuer à valider les différents écrans
5 - Dans Paramètres > Automatisations et scènes puis onglet Blueprint,
cliquer sur la ligne « Renew Let’s Encrypt Certificate » et renseigner les informations :
Entité : (c’est là que vous allez récupérer les informations de l’intégration « Expiration du certificat » en cliquant sur la flèche vers le bas)
Certificate renewal date : nombre de jours avant la date d’expiration où sera fait le renouvellement
Certificate check time : l’heure à laquelle sera effectuée le renouvellement (attention si vous envoyez un message sur votre smartphone prévoir une heure à laquelle ça ne vous dérangera pas et aussi que le redémarrage de home assistant à cette heure ne vous embête pas)
Restart Home Assistant : laisser cocher (un redémarrage me semble nécessaire, mais attention )
Minutes untile restart : laisser à 5 (je n’en connais pas vraiment l’utilité mais autant laisser la valeur)
Send notification : à cocher si vous souhaitez avoir un sms sur votre téléphone mobile (comme ça ne se produira que tous les 2 ou 3 mois, ça semble intéressant d’être alerté pour au moins les premières fois aller vérifier que le renouvellement s’est bien passé, il faut aussi que ça fonctionne pour votre mobile)
Device to notify : votre téléphone mobile
Notification title : un titre
Notification message : le message que vous souhaitez recevoir
Puis cliquer sur enregistrer et donnez un titre à l’automatisation exemple : « Renouvellement HomeAssistant.MonNomDomaine.fr »
6 - Vérifier que c’est bien en place en allant dans Paramètres > Automatisations et Scènes puis onglet Automatisations
Dans la liste, vous retrouverez l’automatisation portant le titre que vous avez donné à votre Blueprint « Renew Let’s Encrypt Certificate »
[center]## System Information
version | core-2024.2.2 |
---|---|
installation_type | Home Assistant Supervised |
dev | false |
hassio | true |
docker | true |
user | root |
virtualenv | false |
python_version | 3.12.1 |
os_name | Linux |
os_version | 5.4.180 |
arch | aarch64 |
timezone | Europe/Paris |
config_dir | /config |
Home Assistant Community Store
GitHub API | ok |
---|---|
GitHub Content | ok |
GitHub Web | ok |
GitHub API Calls Remaining | 5000 |
Installed Version | 1.33.0 |
Stage | running |
Available Repositories | 1389 |
Downloaded Repositories | 9 |
Home Assistant Cloud
logged_in | false |
---|---|
can_reach_cert_server | ok |
can_reach_cloud_auth | ok |
can_reach_cloud | ok |
Home Assistant Supervisor
host_os | Debian GNU/Linux 11 (bullseye) |
---|---|
update_channel | stable |
supervisor_version | supervisor-2024.01.1 |
agent_version | 1.4.1 |
docker_version | 20.10.22 |
disk_total | 14.3 GB |
disk_used | 5.5 GB |
healthy | true |
supported | true |
supervisor_api | ok |
version_api | ok |
installed_addons | File editor (5.8.0), FTP (5.0.1), Samba share (12.3.0), Terminal & SSH (9.9.0), Let’s Encrypt (5.0.15), SQLite Web (4.1.2) |
Dashboards
dashboards | 3 |
---|---|
resources | 4 |
views | 33 |
mode | storage |
Recorder
oldest_recorder_run | 8 février 2024 à 10:00 |
---|---|
current_recorder_run | 18 février 2024 à 14:32 |
estimated_db_size | 542.23 MiB |
database_engine | sqlite |
database_version | 3.44.2 |