Acces HA depuis l'exterieur DUCK DNS n'autorise pas la connexion

Bonjour,

Nouveau sur HA. J’ai install ce dernier sur un RPI4 sans embuches.
Après avoir commencé a tripatouillée une ou deux automatisations simples avec succès je voulais accéder a mon interface HA depuis l’ext.

j’ai suivi sans succès plusieurs tutos différents et me retrouve confronté à un message lors de ma connexion a mon adresse duckdns qui est duckdns n’autorise pas la connexion.

J’arrive en interne à acceder à mon nterface HA via http://homeassistant.local:8123/lovelace/0 (j’y arrivait aussi via le htt://IP:8123 mais j’ai remodifié l’url interne)

ci dessous cfig du complement duck dns

domains:
  - XXXXXXXXXX.duckdns.org
token: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
aliases: []
lets_encrypt:
  accept_terms: false
  algo: secp384r1
  certfile: fullchain.pem
  keyfile: privkey.pem
seconds: 300

ci dessous le configuration.yaml

# Loads default set of integrations. Do not remove.
default_config:

# Load frontend themes from the themes folder
frontend:
  themes: !include_dir_merge_named themes

automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml

  #Networking!
homeassistant:
external_url: « https:/XXXXXXX.duckdns.org »
internal_url: « http://homeassistant.local:8123 »
#Possible fix for the damn external access!

http:
server_port: 8123
ssl_certificate: /ssl/cert.pem
ssl_key: /ssl/key.pem
base_url : XXXXXXXXX.duckdns.org
#allowing Reverse Proxies!
use_x_forwarded_for: true
trusted_proxies: 192.168.1.1

Redirection de port

Service Adresse IP du serveur Protocole Ports externes Ports internes Activer la règle
Utilisateur
home assistant 192.168.1.77 TCP 443 443 8123 8123 onoff
home assistant2 192.168.1.77 TCP 80 80 8123 8123 onoff
home assistant1 192.168.1.77 TCP 8123 8123 8123 8123 onoff

Je ne n’arrive pas a déterminer si j’ai mal fait quelque chose ou si le pb vien d’ailleurs.

L’un d’entre vous a t il une idée sur la chose?

Par avance merci de vos retour.

Happydad


System Information

version core-2024.7.3
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.12.4
os_name Linux
os_version 6.6.31-haos-raspi
arch aarch64
timezone Europe/Paris
config_dir /config
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 Home Assistant OS 12.4
update_channel stable
supervisor_version supervisor-2024.06.2
agent_version 1.6.0
docker_version 26.1.4
disk_total 57.9 GB
disk_used 4.0 GB
healthy true
supported true
host_connectivity true
supervisor_connectivity true
ntp_synchronized true
virtualization
board rpi4-64
supervisor_api ok
version_api ok
installed_addons Samba share (12.3.1), File editor (5.8.0), Duck DNS (1.18.0)
Dashboards
dashboards 2
resources 0
views 0
mode storage
Recorder
oldest_recorder_run 16 juillet 2024 à 17:00
current_recorder_run 27 juillet 2024 à 13:44
estimated_db_size 4.60 MiB
database_engine sqlite
database_version 3.45.3
___

Salut,
Lorsque tu mets du code dans un post, penses à utiliser le texte préformaté avec ce bouton
Elia 2024-07-27 à 15.43.03
plus qu’a le coller ici
Elia 2024-07-27 à 15.43.32
Cela nous permet de pouvoir le copier/coller pour l’essayer mais surtout de voir si tu as mis les bonnes indentations dans ton code

Pour DuckDNS je vois que tu n’as pas accepter les termes d’utilisation

lets_encrypt:
  accept_terms: false

C’est volontaire parceque tu utilises tes propres certificats SSL ? Si non, alors met cela sur true

Je vois dans ta config qu’a Networking, external_url n’a pas de port. Là aussi, est-ce volontaire? Tu utilises un reverse proxy peut etre?
Si non, alors ajoute ton port à ton adresse url

Quand à la section http Je crois que trusted_proxies devrait être configurer comme ca

  trusted_proxies:
    - 172.30.33.0/24

Voila quelques pistes pour t’aider :wink:
Bon courage ^^

Merci pour ce retour.

En effet a force de modifier des choses sont passées à la trappes et d’autres me sont inconnues (je suis totalement novice en redirection d’adresse, port…)

Du coup j’ai corrigé comme suis.

Duck dns

domains:
  - XXXXX.duckdns.org
token: XXXXXXXXXXXXX
aliases: []
lets_encrypt:
  accept_terms: true
  algo: secp384r1
  certfile: fullchain.pem
  keyfile: privkey.pem
seconds: 300

config.yaml


# Loads default set of integrations. Do not remove.
default_config:

# Load frontend themes from the themes folder
frontend:
  themes: !include_dir_merge_named themes

automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml

  #Networking!
homeassistant:
external_url: « https://XXXXXXXXXX.duckdns.org:8123 »
internal_url: « http://homeassistant.local:8123 »
#Possible fix for the damn external access!

http:
server_port: 8123
ssl_certificate: /ssl/cert.pem
ssl_key: /ssl/key.pem
base_url : XXXXXXX.duckdns.org
#allowing Reverse Proxies!
use_x_forwarded_for: true
trusted_proxies: 192.168.1.1/443

Par contre pour le

trusted_proxies: 192.168.1.1/443

Je ne suis pas sur si j’ai bien fait. J’ai compris que cette ligne il doit etre indiqe l’IP de la BOX, su coup est ce bien cela? le port est il celui la? un autre?

Par contre je viens de voir dans le journal d’erreur je viens de voir que j’avais cela
Enregistreur: homeassistant.setup
Source: setup.py:271
S’est produit pour la première fois: 16:28:50 (8 occurrences)
Dernier enregistrement: 16:28:50

Setup failed for ‹ ssl_key ›: Integration not found.
Setup failed for ‹ base_url ›: Integration not found.
Setup failed for ‹ internal_url ›: Integration not found.
Setup failed for ‹ external_url ›: Integration not found.
Setup failed for ‹ server_port ›: Integration not found.

J’a l’impression qu’il me manque quelque que chose sans compredre quoi.

Bonjour,
tu as un problème d’indexion. Il faut faire attention aux espaces.

Exemple :

homeassistant:
  external_url: "https://www.example.com"
  internal_url: "http://homeassistant.local:8123"


# Example configuration.yaml entry
http:
  server_port: 8123
  ssl_certificate: /ssl/cert.pem
  ssl_key: /ssl/key.pem
  base_url : XXXXXXX.duckdns.org
  use_x_forwarded_for: true
  trusted_proxies:
    - 192.168.1.1/24

Tu utilise un reverse proxy ?

1 « J'aime »

Non pas de reverse proxy.
Pour l’indexion je n’avais en effet pas conscience que cela a une importance. J’ai tellement l’habitude du VBA qui est le seul language que je connais vraiment…

Du coup j’ai modifi comme suis.


# Loads default set of integrations. Do not remove.
default_config:

# Load frontend themes from the themes folder
frontend:
  themes: !include_dir_merge_named themes

automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml

  #Networking!
homeassistant:
  external_url: "https://XXXXXXXXX.duckdns.org:8123"
  internal_url: "http://homeassistant.local:8123"

http:
  server_port: 8123
  ssl_certificate: /ssl/cert.pem
  ssl_key: /ssl/key.pem
  base_url : XXXXXXX.duckdns.org
  use_x_forwarded_for: true
  trusted_proxies:
    - 192.168.1.1/443

mais lorsque je fait une vérif de configuration j’ai ce retour.
Erreurs de configuration

Invalid config for ‹ http › at configuration.yaml, line 20: not a file for dictionary value ‹ http->ssl_certificate ›, got ‹ /ssl/cert.pem ›
Invalid config for ‹ http › at configuration.yaml, line 21: not a file for dictionary value ‹ http->ssl_key ›, got ‹ /ssl/key.pem ›
Invalid config for ‹ http › at configuration.yaml, line 25: not a valid value ‹ http->trusted_proxies->0 ›, got ‹ 192.168.1.1/443 ›

Je suis vraiment largué.

Tu n’en as pas besoin, si tu n’utilises pas un reverse proxy. Supprime ces lignes.

ta besoin que de ces lignes. Le port est par défaut sur le 8123.

http:
  ssl_certificate: /ssl/fullchain.pem
  ssl_key: /ssl/privkey.pem

Les fichiers du certificat, privkey.pem et fullchain.pem sont créés par duckdns ( pas cert.pem et key.pem comme t’a mis dans la configue ).
Il faut vérifier dans le journal de duckdns, si les certificats sont créés.
Ou par Samba share ( partage réseau ) , voir si tu les as bien dans le dossier /SSL.
Samba share est un module complémentaire à installer.

image

Donc après avoir fait du ménage j’ai cela.

# Loads default set of integrations. Do not remove.
default_config:

# Load frontend themes from the themes folder
frontend:
  themes: !include_dir_merge_named themes

automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml

  #Networking!
homeassistant:
  external_url: "https://XXXXXXXXXXXX.duckdns.org:8123"
  internal_url: "http://homeassistant.local:8123"

http:
  ssl_certificate: /ssl/cert.pem
  ssl_key: /ssl/key.pem

Les certificats sont visiblement la

Rien en echec dans le journal
s6-rc: info: service legacy-services: stopping
s6-rc: info: service legacy-services successfully stopped
s6-rc: info: service duckdns: stopping
[18:25:35] INFO: Service duckdns exited with code 256 (by signal 15)
s6-rc: info: service duckdns 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
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
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service duckdns: starting
s6-rc: info: service duckdns successfully started
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started

INFO: Using main config file /data/workdir/config

  • Account already registered!
    [18:25:43] INFO: Starting DuckDNS…
    [18:25:44] INFO: Renew certificate for domains: XXXXXXX.duckdns.org and aliases:

INFO: Using main config file /data/workdir/config

Processing XXXXXXX.duckdns.org

  • Signing domains…
  • Generating private key…
  • Generating signing request…
  • Requesting new certificate order from CA…
  • Received 1 authorizations URLs from the CA
  • Handling authorization for XXXXXXXX.duckdns.org
  • Found valid authorization for XXXXXXXX.duckdns.org
  • 0 pending challenge(s)
  • Requesting certificate…
    Warning: Will read cert request from stdin since no -in option is given
  • Checking certificate…
  • Done!
  • Creating fullchain.pem…
  • Done!

Par contre toujours ces erreurs lors de la vérification de config.
Erreurs de configuration

Invalid config for ‹ http › at configuration.yaml, line 18: not a file for dictionary value ‹ http->ssl_certificate ›, got ‹ /ssl/cert.pem ›
Invalid config for ‹ http › at configuration.yaml, line 19: not a file for dictionary value ‹ http->ssl_key ›, got ‹ /ssl/key.pem ›

Ta pas fais attention, c’est pas le bon nom de fichier:
image

image

Arf…
A force de me passer les config en boucles je ne vois plus rien. :frowning:
Bon déjà je n’ai plus les erreur de config. Par contre toujours le même message lorsque je me connecte a distance XXXXX.duckdns.org n’autorise pas la connexion.
ERR_CONNEXION_REFUSED

En tout cas un grand merci de ta patience avec le blaireau que je suis.

EDIT petite precision J’arrivais en local a acceder a l’interface via le homeassitant.local:8123
mais depuis il faut que je passe par http://IP:8123

Toute façon, il vaut mieux passer par l’ip. Mais tu ne devrais pas pouvoir te connecter en HTTP, mais qu’en HTTPS avec duckdns activer.
https://ip:8123 , tu auras une erreur, car ce n’est pas ton nom de domaine, mais peut continuer pour afficher la page.

Si tu veux toujours du HTTP et HTTPS, la, il faudra passer par un reverse proxy comme NGiNX Homeassistant SSL.

En https j’arrive a me connecter mais il me fait savoir que c’est non sécurisé
Sans titre1
Par contre dans paramètres/système il me dit dit qu’il n’est pas ouvert au réseau externe.


Les paramètres sont sur auto
et désactivés dans le WLAN0
Sans titre2
et au niveau des infos IP il me dit cela?

Informations IP

IPv4

Adresse IP : 192.168.1.77/24
Passerelle : 192.168.1.1
Méthode : auto
Serveurs DNS : 192.168.1.1

IPv6

Adresse IP : 2a02:8428:91d0:2801:d940:56cf:e532:38e0/64, fe80::7435:b5b6:406:4909/64
Passerelle : fe80::6e38:a1ff:fe91:b7bf
Méthode : auto
Serveurs DNS : 2a02:8428:91d0:2801:6e38:a1ff:fe91:b7bfL

Désactive le IPV6

fait mais toujours considéré hors réseau externe.
Cependant je ne vois pas le sous menu URL de homeassistant. meme apres un redémarrage du serveur.

À cause de ces lignes, je pense, avant, c’était en YAML dans le configuration.yaml. Maintenant, on peut le faire de l’UI.

À tu le mode avancé activé ( dans ton profil, icone an bas a droite ) ?
image

Ligne de codes supprimées.
Le menu est apparu en activant le mode avancé que je n’avais pas en effet.

Ne fonctionne toujours pas en acces a distance mais message différent.
XXXXXXXXXXX.duckdns.org à mis trop de temps à répondre…
:frowning: je perds espoir…

Quel est ton fournisseur d’accès internet ?

red (sfr) en box fibre

ta besoin que de ce port ouvert 8123 vers 8123 sur ip de ton HA.
Pas besoin du 80 et 443.

Tu dois écrire l’adresse internet sans port. Ta besoin du port que pour la local.
image

essaye aussi de vider le cache de ton navigateur et retente.

j’ai supprimé les autres lignes de redirection de port


Box redémarée
Cache du navigateur vidé
Sans titre
Mais pas de changement. XXXX.dickdns.org a mis top de temps à répondre

Sachant que je peux pas desactiver l’IPV6 a priori

L’ipv6 est à désactiver sur HA seulement.
Je vois ce qui bloquerait, tout a l’air OK.
Il faut voir avec un autre utilisateur plus doué en réseau que moi :wink: