Accéder a Home Assistant depuis l’extérieur en HTTPS avec un NDD Freebox et Let's Encrypt

Peux-tu partager un lien stp ?

Je sais pas ce que t’as vu sur le sitre de l’aduf, mais dans ce cas là je dirai reset vers les « paramètres d’usine » ?

pardon j’ai lu les différentes réponses mais pas forcément fait attention aux images.

je n’ai. plus de freebox depuis peu donc je ne pzux pas vérifier.

est ce que quelqu’un qui a une. freebox a pu tester voir si chez lui ca marche cette config ?

Je me suis embrouillé, c’est sur le bug traker de free, voici le lien

C’est ce à quoi j’ai pensé un moment, mais pour l’instant j’aimerais éviter car j’ai une conf DHCP assez fourni et je n’ai pas de garanti que l’export de la conf de FB exporte ces params

Bonjour tout le monde !

Aprés être resté bloqué quelques jours, je me suis mise à lire le thread !
J’ai lu avec attention les messages precedents sur le problèmes de @pcan et je suis dans la même situation.

Bonjour,
Actuellement j’accède depuis l’extérieur à HA en http (FAI Free en IP statique) et j’ai ce message dans HA « code-server is being accessed in an insecure context. Web views, the clipboard, and other functionality may not work as expected. »
Si je suis les indications de ce tutoriel (création nom de domaine + Let’s Encrypt), la remarque de @McFly laisse penser qu’il faudra faire quelque chose en plus pour sécuriser ? (VPN)

@pcan , désolé du retard mais en voyant votre discussion, je peux peut-être t’aider.

J’ai une Révolution avec un Home Assistant sur un PC et j’y accede bien de l’extérieur via une redirection du port 80 et 443 :
image

Je n’ai aucune redirection sur le port 8123 de configurer dans la console Freebox.

Donc tout mon trafic entrant passe par ce PC-SERVEUR-DOMO.
Sur ce PC-SERVEUR-DOMO, j’ai installé un Nginx-Proxy-Manager qui me permet de router mon flux en fonction de l’URL.

Par exemple, depuis l’extérieur, je peux accéder à mon HA via l’URL https://home-assistant.mondomaine.fr et mon NPM redirige le flux https de home-assistant.mondomaine.fr vers l’URL en http et IP : http://192.168.1.3:8123.

En plus NPM gère seul les rafraîchissements des certificats auprès de let’s Encrypt.

Pour configurer Nginx Proxy Manager, tu peux t’appuyer sur le tuto : ✅ Accès de l’extérieur en HTTPS avec Nginx Proxy Manager

bonjour,
je viens de suivre le tuto pour installer et mettre en service l’accès externe avec duckdns, à la fin du tuto il est demandé de suivre l’installation de let’s encrypt , donc j’en suis là

  • j’ai renommé les 2 fichiers dans SSL en xx_old.txt
  • j’ai mis à jour la configuration
domains:
  - jlucxxxxxxx.duckdns.org
email: jlxxxxno@gmail.com
keyfile: privkey.pem
certfile: fullchain.pem
challenge: http
dns: {}

les ports 8123, 443 et 80 sont ouvert vers 8123 la machine HA

puis fait démarrer

le log montre une erreur :
s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
cont-init: info: running /etc/cont-init.d/file-structure.sh
cont-init: info: /etc/cont-init.d/file-structure.sh exited 0
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
services-up: info: copying legacy longrun lets-encrypt (no readiness notification)
s6-rc: info: service legacy-services successfully started
[08:53:15] INFO: Selected http verification
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Requesting a certificate for jlxxxxxx.duckdns.org
Certbot failed to authenticate some domains (authenticator: standalone). The Certificate Authority reported these problems:
Domain: jluxxxxx.duckdns.org
Type: unauthorized
Detail: 109.xxx.231.xxx: Invalid response from http://jluxxxxx.duckdns.org/.well-known/acme-challenge/GNtVTpiawEphU7WgjFArF--1SuNzhxNEAsYklbkQHkQ: 404
Hint: The Certificate Authority failed to download the challenge files from the temporary standalone webserver started by Certbot on port 80. Ensure that the listed domains point to this machine and that it can accept inbound connections from the internet.
Some challenges have failed.
Ask for help or search for solutions at https://community.letsencrypt.org. See the logfile /var/log/letsencrypt/letsencrypt.log or re-run Certbot with -v for more details.
s6-rc: info: service legacy-services: stopping
s6-rc: info: service legacy-services successfully stopped
s6-rc: info: service legacy-cont-init: stopping
s6-rc: info: service legacy-cont-init successfully stopped
s6-rc: info: service fix-attrs: stopping
s6-rc: info: service fix-attrs successfully stopped
s6-rc: info: service s6rc-oneshot-runner: stopping
s6-rc: info: service s6rc-oneshot-runner successfully stopped

j’ai surement une étape ou un oubli quelquepart mais je sais pas ou ?
merci de votre aide

Salut
A priori, duckdns ne pointe pas sur ton ip public.
Fait ça:

  • dans Google, recherche « what’s my IP »
  • Si tu as windows, éxécute la commande:
nslookup jluxxxxx.duckdns.org

Si duckdns est bien configuré, tu dois retrouvé ton ip. Sinon, il faut configurer duckdns.

merci de la réponse
1 - quand je fais what’s my IP j’ai bien la bonne IP
2 - quand je me reconnecte à duckdns pour voir le domaine :
il est correcte et si je prend cette adresse publique et que je veux faire un update
j’ai ip address for jluc2808ha.duckdns.org was already 109.208.xxx.xxx not updated

par contre avec

nslookup http://jluc2808ha.duckdns.org

j’ai

PS C:\Users\jean-luc> nslookup http://jluc2808ha.duckdns.org
Serveur :   dns.google
Address:  8.8.4.4

*** dns.google ne parvient pas à trouver http://jluc2808ha.duckdns.org : Non-existent domain

et je suis certain d’avoir mis la bonne adresse mail dans la configuration let’s encrypt qui est celle du login duckdns

edit: j’ai modifié le conenu pour mettre les bonnes adresses et domaine, dès que vous aurez lu je remodifierais

Désolé, il faut enlever http:

nslookup jluxxxxx.duckdns.org

idem même réponse Non-existent

J’ai la bonne ip avec DNS cloudfare…

ça c’est bon, pourquoi chez moi c’est KO ?
c’est une histoire de DNS google ?

Non, redirige 80 vers 80 sur ton ip HA

bien, j’ai supprimé la redirection 80 vers 8123 (comme demandé avec add-on duck-dns)
ajouté 80 vers 80 machine HA
et je pense que c’est OK
le log:

s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
cont-init: info: running /etc/cont-init.d/file-structure.sh
cont-init: info: /etc/cont-init.d/file-structure.sh exited 0
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
services-up: info: copying legacy longrun lets-encrypt (no readiness notification)
s6-rc: info: service legacy-services successfully started
[10:22:13] INFO: Selected http verification
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Requesting a certificate for jluc2808ha.duckdns.org
Successfully received certificate.
Certificate is saved at: /data/letsencrypt/live/jluc2808ha.duckdns.org/fullchain.pem
Key is saved at:         /data/letsencrypt/live/jluc2808ha.duckdns.org/privkey.pem
This certificate expires on 2023-06-05.
These files will be updated when the certificate renews.
NEXT STEPS:
- The certificate will need to be renewed before it expires. Certbot can automatically renew the certificate in the background, but you may need to take steps to enable that functionality. See https://certbot.org/renewal-setup for instructions.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
 * Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
 * Donating to EFF:                    https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
s6-rc: info: service legacy-services: stopping
s6-rc: info: service legacy-services successfully stopped
s6-rc: info: service legacy-cont-init: stopping
s6-rc: info: service legacy-cont-init successfully stopped
s6-rc: info: service fix-attrs: stopping
s6-rc: info: service fix-attrs successfully stopped
s6-rc: info: service s6rc-oneshot-runner: stopping
s6-rc: info: service s6rc-oneshot-runner successfully stopped
1 « J'aime »

merci, j’ai terminé la procédure en mettant à jour internet et ajout dans config
c’est OK maintenant
est-ce que je peux supprimer la redirection 80 vers 80 machine HA ?
et est-ce que je dois garder les 2 redirections 443 et 8123 vers 8123 ?
comment je fais un renouvellement automatique du certificat sous RPI4 HAOS ?

Tu dois faire en sorte de démarrer régulièrement Let’s Encrypt.
Par exemple avec une automatisation, à 01h00:

- id: '1678199349348'
  alias: DemarrerLetsEncrypt
  description: ''
  trigger:
  - platform: time
    at: 01:00:00
  condition: []
  action:
  - service: hassio.addon_start
    data:
      addon: core_letsencrypt
  mode: single

Mais Let’s Encrypt a besoin de la redirection 80, pour renouveller le certificat.

Non, tu peux en garder une seule, à toi de choisir celle que tu veux utiliser.

pardon de la question probablement très très basique
le code que tu as mis , tu l’ajoutes ou ? dans configuration.yaml ?

c’est ce que j’ai fait et j’ai une volée d’erreur
Integration error: mode - Integration ‹ mode › not found.
Integration error: alias - Integration ‹ alias › not found.
Integration error: condition - Integration ‹ condition › not found.
Integration error: trigger - Integration ‹ trigger › not found.
Integration error: description - Integration ‹ description › not found.
Integration error: action - Integration ‹ action › not found.

donc je pense que c’est pas là ou que j’ai oublié quelque chose
merci de tes réponses dans tous les cas

ç’est le fichier automations.yaml
J’ai édité mon code, donc un copié-collé devrait fonctionner.

Mais le plus simple, ç’est que tu te fasses une automatisation via l’interface:
Paramètres → Automatisations et scènes
Dans la page Automatisation, clique sur Créer une automatisation et configure en fonction de tes besoins.

OK merci bien de cette partie, j’ai fait l’automate via l’interface, puis j’ai controlé dans le yaml , c’est exactement ce que tu as mis donc ça devrait le faire