HAOS sur un mini PC
Acces internet via une Freebox (revolution)
Acces en HTTPS avec certificat généré par l’addon letsencypt
Nom de domaine (en fait un sous domaine) en https://xxxxx.freeboxos.fr
Dans mon cas sur freebox (mon nom de domaine est en fait un sous domaine en http://xxxx.freeboxos.fr ) le renouvellement de certificat passe par un challenge http avec l’addon Letsencrypt (pas possible d’utiliser l’autre type de challenge a priori car c’est un sous domaine).
Il me faut donc systématiquement ouvrir le port 80 pour que le challenge passe, puis le refermer (car je préfère éviter de laisser un port 80 ouvert depuis la box vers le serveur HA…)
Du coup je n’ai pas pu créer d’ automatisation de renouvellement (car sinon le renouvellement ne passe pas si le port n’est pas ouvert) mais j’ai tout de même une alerte avant que le certificat n’expire…
Mes questions pour les pros:
Vous me confirmez bien que c’est pas terrible de laisser une redirection ouverte vers le port 80 en permanence ? Et que ma precaution n’est pas complètement inutile ?
Y aurait-il moyen avec une Freebox Revolution d’automatiser cette ouverture / fermeture de la redirection du port 80 depuis HA pour pouvoir automatiser toute la chaine ?
Salut,
je n’ai pas de solution à ton problème. Mais avec un NDD chez OVH pour quelques euros/an, tu peux utiliser le challenge dns et pas besoin d’ouvrir le port 80.
Je vais essayer de faire une analogie.
Tu peux comparer l’ouverture d’un port comme un porte d’entrée dans ta maison.
A chaque fois que tu ouvres un port, ç’est comme si tu ajoutes une porte d’entrée dans ta maison.
Plus tu as de portes, plus il y a de moyens de rentrer chez toi.
Maintenant, sur les portes il y a des serrures. Pour les ports, il faut un protocole de communication. Mais le port 80, ç’est du HTTP qui est le plus connu…
Ensuite dans le cas de HA, il faut un utilisateur avec mot de passe.
Mais il est possible qu’ils existent des failles de sécurité exploitables.
Bref, si tu sais ce que tu fais, tu ne risques pas grand chose. Par contre, si tu ne sais pas, tu peux créer une porte d’entrée sans serrure, ou oublier de la fermer, ou perdre tes clés… et n’importe qui peut rentrer…
Perso, je déconseille l’ouverture d’un port en permanence.
Il faudrait voir s’il y a une API pour ça. Regarde si ç’est possible avec l’intégration.
Après comme le dit @WarC0zes, un nom de domaine, ç’est 15-20€ par an. Et tu peux changer de FAI tranquillement
En effet, chez OVH on trouve un nom de domaine en .fr pour ~8/9 € TTC par an… (après la première année qui est en promo ou gratuite suivant la durée d’engagement)
Non pas du tout simplement que pour utiliser le challenge DNS il faut que ton registrar propose une api pour manipuler le DNS et ajouter des enregistrements a la volée ce que ne permet pas free
Un conseille acheter un vrai nom de domaine chez un registrar qui propose des API ouvertes genre OVH, ça coûte 2€ par an (oui par an)
Elle l’est puisque c’est l’addon let’s encrypt qui écoute sur le port 80 et qu’en gros il ne vas écouter que pendant le renouvellement soit quelques instants tous les 90 jours
Ma précaution c’est de ne pas laisser ouvert le port en permanence.
Je ne suis pas inquiet de le laisser ouvert le temps du challenge puis de le fermer.
Je ne l’ai pas expliqué, mais lorsque tu ouvres un port sur une machine, il faut aussi que sur cette machine, il y ai un service qui « écoute » le port. Dans le cas de let’s encrypt, le service écoute le port que lorsqu’il est démarré, puis s’éteint tout seul. Du coup, il n’y a plus rien qui « écoute », donc plus aucune réponse non plus.
ç’est comme si tu essaie d’ouvrir une serrure, mais la clé tourne dans le vide.
ce n’est pas une très bonne idée de laisser un port ouvert en permanence sur une machine (c’est laisser exposé une porte d’entrée), mais la porte n’est tout de même pas grande ouverte, encore faut il savoir l’ouvrir.
on a enlevé une barrière de protection, donc la seule barrière qui reste ensuite c’est le serveur HA lui même qui normalement est protégé, mais on n’est pas à l’abri d’une vulnérabilité.
le seul service qui écoute sur ce port c’est let’s encrypt, qui est en sommeil 99.9% du temps, donc si quelqu’un cherche à communiquer sur ce port il ne trouvera personne pour répondre.
J’ai donc deux options:
payer un NDD pour pouvoir faire du challenge DNS en n’exposant pas le port 80.
laisser la redirection du port 80 en permanence ouverte et espérer qu’il n’y a pas de faille de sécu majeure (et ne pas oublier de faire attention si j’ajoute d’autres trucs sur cette machine qui écouteraient aussi le port 80…)
Merci à tous pour vos explications, j’y vois un peu plus clair… et laisser le port 80 ouvert me fait un peu moins peur…
Y’a vraiment aucun risque dans le cas actuel
Évite d’ajouter un service qui écouterai sur le port 80 ça plaira pas à let’s encrypt qui vas se vautrer
Tu ne peux avoir qu’un seul service qui écoute le même port
Il faudrait pouvoir cocher tous vos posts en solution car il y a des pistes et des conseils pertinents dans chacun…
Et pour ceux qui tomberaient sur ce fil à l’avenir avec une recherche et qui se demanderaient comment automatiser ça, il y a déjà plein de très bons exemples sur le forum, par exemple là: Expiration Let's Encrypt - #14 par WarC0zes
Et basé là dessus, chez moi ça donne ça:
alias: Certificat SSL Renouvellement
description: |-
Démarrage auto de Let's encrypt à 3h
si certif expire dans moins de moins de 21j
Puis redémarrage de HA après 3 min
triggers:
- at: "03:00:00"
trigger: time
conditions:
- condition: template
value_template: >-
{{ (states('sensor.cert_expiry_timestamp_url_fr')
| as_datetime or now()) - timedelta(days=21) < now()}}
actions:
- action: hassio.addon_start
data:
addon: core_letsencrypt
metadata: {}
# petit script pour mémoriser un log "maison".
- action: script.warning_publish
metadata: {}
data:
message: Renew HTTPS
- delay:
hours: 0
minutes: 3
seconds: 0
milliseconds: 0
- action: homeassistant.restart
metadata: {}
data: {}
mode: single
Franchement fais un redémarrage tous les dimanches a 1h du mat et ça suffit
Tout le reste c’est vraiment inutile
Certbot fait déjà rour cela au moment de renouveller