Configuration HA pour accès SSL avec NDD (complément et/ou suite tutos McFly et Sylvain)

System Health

version 2021.1.1
installation_type Home Assistant Supervised
dev false
hassio true
docker true
virtualenv false
python_version 3.8.7
os_name Linux
os_version 5.4.0-60-generic
arch x86_64
timezone Europe/Paris
Home Assistant Community Store
GitHub API ok
Github API Calls Remaining 4986
Installed Version 1.9.0
Stage running
Available Repositories 709
Installed Repositories 5
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Hass.io
host_os Ubuntu 20.04.1 LTS
update_channel stable
supervisor_version 2020.12.7
docker_version 20.10.2
disk_total 54.3 GB
disk_used 21.3 GB
healthy true
supported failed to load: Unsupported
supervisor_api ok
version_api ok
installed_addons Visual Studio Code (2.9.1), Samba share (9.3.0), Duck DNS (1.12.4), ESPHome (1.15.3), Glances (0.9.1), TasmoAdmin (0.13.1), Terminal & SSH (8.10.0), Log Viewer (0.9.1), Zigbee2mqtt (1.17.0.1), Let’s Encrypt (4.11.0), NGINX Home Assistant SSL proxy (3.0.1), Nginx Proxy Manager (0.8.2), MariaDB (2.2.1), phpMyAdmin (0.1.4), Grafana (5.3.6), InfluxDB (3.7.9), File editor (5.2.0)
Lovelace
dashboards 1
mode storage
views 7
resources 0

Bonjour, je tourne sur freebox, j’ai donc un nom de domaine en freeboxos.fr
J’ai installé let’s encrypt et appliqué le tuto de Mc Fly (merci à lui au passage) pas de soucis je me connecte bien en Https.
Premier soucis je n’ai plus accàs en local en tapant monip:8123
De plus je souhaiterai pouvoir aussi accèder à node red, portainer et éventuellement à d’autres ports qui tournent en container avec des addons. Je ne parviens pas à les joindre autrement qu’en local , xx.freeboxos.fr:« portvoulu » me renvoie une erreur ssl de chaine trop longue.

Aimant chercher par moi même avant de crier au feu (je demande deja assez souvent des infos sur discord) j’ai installé les addons NGINX Home Assistant SSL proxy et Nginx Proxy Manager. j’ai découvert que je ne pouvais pas utiliser les deux (que je pensais complémentaires) puisqu’ils se partagent le même port.
J’ai suivi le tuto de Sylvain pour Nginx Proxy Manager mais finalement j’ai du recommencer à zéro car mes certificats etaient encore ceux de duckdns…
Au moment ou je vous écris, j’ai désactivé les 2 addons NGinx et appliqué le tuto de Mc Fly, et je rencontre le problème mentionné au premier point de nouveau.

Avant de continuer je souhaitais pouvoir discuter de tout cela et des differences et ou avantage a rajouter ou pas NGinx… Je dois préciser que qd j’avais installé NGinx HA SSL proxy au coté de DuckDNS j’arrivais à me conecter en remote sur mon domaine duck, sur mon domaine freebox en https et sur NR ou portainer en http apres un message d’erreur en https me disant que le domaine securisé pour ces sites n’existe pas et me propose donc de me co en http…

Donc commençant à y perdre mon latin je viens chercher des conseils et de l’aide, je suis prêt aussi à en discuter à plusieurs si d’autres sont interrèssés sur un salon de notre discord si c’est plus simple et convivial…

Merci pour votre aide

Specnaz

Bonjour,

As tu renseigné dans ta configuration en passant par l’interface :
URL Externe : ton_url_en_https
URL interne : ton_url_en_https

Sinon :

NGINX PROXY MANAGER te permet d’atteindre HA depuis l’exterieur

Depuis chez toi, ton LAN, tu dois faire du loopback pour atteindre ton url externe, donc installé un ADDON comme ADGUARD ou DNSMASQ

:warning: Attention, le protocole que tu utilises lorsque tu tape ton adresse IP et bien le HTTP et pas le HTTPS ?
L’URL que tu dois utiliser en spécifiant l’adresse IP, c’est :

http://<adresse_ip>:8123

Le certificat pour utiliser le protocole HTTPS n’est valable que pour le nom de domaine.

:warning: il me semble que le fait d’ajouter dans le fichier de configuration :

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

force l’utilisation de l’accès sécurisé en https et non plus en http.

Comme l’a indiqué @pepite :

Du coup :

Tape en https://<@ip>:8123.

Pour le reste j’y connais rien… :innocent:

Alors si je tape mon ip en https --> https://10.0.0.58:8123
j’obtiens ce message :
La requête ne peut aboutir

Le site à l’adresse https://10.0.0.58:8123/ a subi une violation de protocole réseau qui ne peut pas être corrigée.

La page que vous essayez de voir ne peut pas être affichée car une erreur dans la transmission de données a été détectée.

Veuillez contacter les propriétaires du site web pour les informer de ce problème.

si je tape mon ip en http --> http://10.0.0.58:8123
j’obtiens ce message :
La connexion a été réinitialisée

La connexion avec le serveur a été réinitialisée pendant le chargement de la page.

Le site est peut-être temporairement indisponible ou surchargé. Réessayez plus tard ;
Si vous n’arrivez à naviguer sur aucun site, vérifiez la connexion au réseau de votre ordinateur ;
Si votre ordinateur ou votre réseau est protégé par un pare-feu ou un proxy, assurez-vous que Firefox est autorisé à accéder au Web.

@pepite pour les adresse dans HA tu mets https pour les 2 du coup ? interne et externe ?

ce qui ferait URL externe : https://xxxx.freeboxos.fr:8123
URL interne : https://10.0.0.58:8123

C’est bien ça ?

Oui.

moi en tapant l’@ip en:

http :

et en https:

@sylvain : je m’y perds lol avec mon ip locale sur mon ordi chez moi sur mon propre réseau je me connecte comment du coup en http (http://10.0.0.58:8123) ou https (https://10.0.0.58:8123) ? si je prends l’ensemble des réponses il semble y avoir des contradictions ou alors je suis vraiment une quiche :grin: et je n’arrive plus à vous suivre…
Dans tous les cas http ou https j’ai une erreur sur les 2…

Je peux certes me connecter via mon ndd mais en local je trouve ça con d’autant plus que j’ai une certaine voire parfois très certaine latence… (adsl pourri comme co)

@clemalex:

Alors sur firefox là ou cela fonctionnait avant en http ://@ip:8123 cela ne fonctionne plus, par contre en voyant que tu étais sur chrome j’ai eu l’idée de tester sur un autre navigateur et la je me retrouve comme toi avec une page en http pour laquelle je dois ajouter une exception…je n’y comprends plus rien :joy: (edge utilisé poue l’essai)

Je commence à me demander si c’est pas mon firefox qui commence à être déficient ! qd je clique sur lovelace sur une carte il me fait apparaitre un curseur par exemple… et cette histoire d’url semblerait faire pencher vers une déficience logicielle aigüe de firefox…

t’as des addons nginx reverse etc. d’activé ? moi je n’ai rien et j’ai le fonctionnement comme je l’ai mis sur les photos. C’est le fonctionnement par défaut suite à l’activation du ssl

moi c’est en https sur chrome et firefox avec le même comportement…
t’arrache pas les cheveux!

Pour les cheveux t’inquiète pas pour eux j’ai adopté le look Barthez :grin: mais c’est quand même pénible du coup si j’ai des comportements différents en fonction du navigateur.
Pour répondre à ta question j’ai les 2 addons nginx installé mais aucun en route pour le moment…ce sera pour la partie 2 du plan quand on aura résolu ce point et que l’on abordera l’accès aux autres ports via mon ndd

as tu renseigné comme le dit @pepite ?

De ce que j’ai compris de ta situation, et avec les add-on désactivés, tu n’as plus que https de disponible.
Donc, http://monip:8123 ne marchera plus.
Ensuite, si tu veux faire httpS://monip:8123, là, le comportement va varier avec le navigateur utilisé et la version de ce navigateur.
Le certificat que tu as installé c’est pour l’hôte ha.mondomaine.fr et pas pour monip (192.168…).
Chrome t’envoie une insulte comme quoi il y a sans doute un méchant qui prétend être ce qu’il n’y pas puisqu’il y a une différence entre monip et ha.mondomaine.fr. Mais, chrome est (encore) gentil et te laisse dire « oui, je sais mais je veux le faire quand même ».
Firefox était gentil et on pouvait faire de même. Avec les versions récentes (je dirais moins d’un an), ce n’est plus possible.
Ce qui serait vraiment cool serait que HA puisse faire du HTTPS et HTTP en même temps, mais, malheureusement ce n’est pas (encore?) possible.

C’est pour cela qu’une solution possible consiste à utiliser un reverse proxy (add on nginx ou caddy) que l’on utilisera pour les accès HTTPS externe qui marchera HA restant en HTTP et donc accessible en direct en HTTP.

1 « J'aime »

oui j’ai mis ext https://xxx.freeboxos.fr et int https://10.0.0.58:8123

et ça marche sous chrome et sous edge en mettant une exception…comme avec firefox avant sauf que depuis ces manips ssl et autres sous firefox cela ne marche plus que par https sur le NDD…c’est bizarre non ? je ne suis pas allé changer de paramètre dans firefox pourtant…

@golfvert t’as fait une jolie réponse explicative…(faut que je mette à jour mon firefox… :grin:)
edit: ah bah non j’ai la dernière (84.0.2) et je peux lever une exception @golfvert (mais c’est HS, j’attend pas de réponse c’est pour info)

Merci pour ta réponse, donc du coup je suis bien sécurisé depuis l’exterieur en passant https sur mon NDD et en local je suis (censé en tout cas) être sécurisé puisque sur réseau local derrière DMZ, routeur et FW.

Par contre si j’ai fait ma redirection de port pourquoi firefox me jette si j’essaie de faire mon https:monNDD:1880 par exemple pour atteindre node red ? parce que c’est firefox et qu’il bloque ou je suis quand même bloqué ? Car quand je faisait tourner nginx en plus la avec mon ndd et firefox je pouvais atteindre NR, portainer etc mais il m’obligeait a passer http en me disant que l’hote ne disposait pas de https…du coup je n’étais pas protègé logiquement ? (à savoir que je tourne h24 sous nord vpn qd même pour toutes mes connections)

Bon je me réponds partiellement, car le brouillard se dissipe peu à peu… pour node red par exemple je pense que je dois configurer le https sur node red lui même peut être non ? et ça doit être pareil pour portainer etc…quid des addons genre tasmo admin qui sont gérés par HA directement ? je vais essayer si https grace à HA ou http car webui hors HA…

C’est mon expérience au taf qui m’a fait écrire ça. On est emm… avec ce problème sur firefox. Mais, bon, je me trompe peut-être. Sur un autre post, on évoquait la complexité/simplicité de certaines solutions. Je pense que mettre HA en HTTPS sauf si on sait vraiment ce que l’on fait et que c’est indispensable, il vaut mieux éviter. C’est une source potentielle d’ennui sans fin. Et autoriser des exceptions, même si ça marche, ce n’est pas une bonne pratique. Les navigateurs sont en train d’améliorer leur sécurité (cf. la suppression de flash player) et un jour prochain, je pense que les exceptions seront impossibles.

Oui, c’est ça. Et ça va être galère. Ton certificat c’est un « wildcard » (autrement dit ça marche pour *.mondomaine.fr) ou seulement pour ha.mondomaine.fr? Parce que si c’est ha seulement, bah, il ne sera pas valide pour NR en interne avec l’IP mais aussi en externe. Et c’est reparti pour un fonctionnement par exception. Ce qui est, au mieux, pénible et au pire impossible.

Donc, je pense que ne faire que du HTTPS (donc ne pas avoir de reverse proxy), ça va te poser des problèmes in fine. Par exemple (et là je suis vraiment sûr ;)), l’appli home assistant officielle ne marchera pas si tu mets https://monip:8123 et là, pas moyen de faire une exception. Il me semble que dans ta situation, il vaudrait mieux laisser les services en HTTP et avec un reverse proxy faire pointer en fonction du nom vers le service en HTTP en interne. Voir une base sur la mise en place ici Plusieurs nom de domaine externe vers plusieurs IP locale - #3 par golfvert

Bonjour,

Pour moi non :wink:
As tu essaye de mettre https://xxxx.freboxos.fr:8123 pour URL externe ET interne

:wink: