Après avoir cherché un moment, je partage l’astuce pour se connecter à Home Assistant via le reverse proxy d’un NAS Synology à partir de DSM 6.2.
Pour savoir à quoi sert un reverse proxy, vous pouvez aller voir la page Wikipedia. Dans mon cas il me sert uniquement d’intermédiaire de sécurité en étant le seul à connaitre le nom de domaine vers mon Home Assistant.
Voici la procédure :
Tout d’abord il faut se connecter avec un compte admin et se rendre dans le Panneau de configuration puis cliquer sur Portail des applications .
Description : On y met ce qu’on veut, par exemple Home Assistant
Source : C’est l’adresse avec laquelle on se connectera depuis internet pour acceder à Home Assitant Protocole : Le protocole avec lequel on se connectera et qu’on doit préalablement rediriger vers le NAS dans la configuration du routeur (HTTPS conseillé) Nom d’hôte : Il faut ajouter un nom de domaine au choix au nom de domaine principal (celui qui permet de se connecter au NAS). Par exemple si mon nom de domaine principal est toto.synology.me, je peux choisir ha.toto.synology.me. Port : Le port qui correspond au protocole, 80 pour HTTP et 443 pour HTTPS
Destination : C’est l’adresse du réseau local pour accéder à Home Assistant Protocole : Le protocole avec le lequel on se connecte en local à Home Assistant (HTTP ou HTTPS) Nom d’hôte : L’adresse IP locale de Home Assistant, par exemple 192.168.0.10 Port : Le port qui correspond au protocole, 80 pour HTTP et 443 pour HTTPS
Si on s’arrête à cette étape comme j’ai toujours fait, ça ne fonctionnera pas, avec l’adresse externe on tombe sur un logo Home Assistant avec marqué « Retry » et ce message d’erreur dans le journal :
Logger: homeassistant.components.http.ban
Source: components/http/ban.py:114
Integration: HTTP ([documentation](https://www.home-assistant.io/integrations/http), [issues](https://github.com/home-assistant/home-assistant/issues?q=is%3Aissue+is%3Aopen+label%3A%22integration%3A+http%22))
First occurred: 00:08:43 (12 occurrences)
Last logged: 14:49:06
* Login attempt or request with invalid authentication from 192.168.0.10 (192.168.0.10) (Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:82.0) Gecko/20100101 Firefox/82.0)
* Login attempt or request with invalid authentication from 192.168.0.10 (192.168.0.10) (Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:83.0) Gecko/20100101 Firefox/83.0)
L’étape primordiale est d’aller dans le 2e onglet En-tête personnalisé, cliquer sur la flêche de Créer et sélectionner WebSocket. Deux lignes vont automatiquement s’ajouter.
Cliquer sur OK et le tour est joué, vous aurez accès à Home assistant avec l’adresse externe (https://ha.mon.domaine.fr pour mon exemple dans la copie d’écran)
Pour info j’ai trouvé l’astuce sur le site officiel (en anglais donc) ici.
Merci d’avoir partagé.
Je me souviens avoir galéré aussi à l’époque avant de trouver sur le forum anglophone. D’ailleurs à l’époque il fallait modifier un fichier de conf du Synology à la main à l’aide d’un ssh root.
Effectivement avant DSM6.2 il faut le faire manuellement :
Avec un ssh en root éditer /usr/syno/share/nginx/Portal.mustache et ajouter les lignes suivantes dans la section Location :
J’avais déjà commencé cette configuration avant de tomber sur ton topic.
J’ai un nom de domaine chez OVH, ou j’ai déjà fait un DynHost pour accéder a mon NAS ce qui fonctionne depuis des années. nas.mondomain.fr.
J’ai ajouté un second dynhost sur OVH sous la forme assistant.nas.domain.fr
Config reverse proxy de DSM (j’ai bien entendu anonymiser l’URL). Je précise que j’ai bien les headers de configurés.
@Darslan T’as quoi comme box ?
Perso avec la Livebox je peux pas accéder avec l’adresse publique depuis mon réseau local. T’as essayé d’y accéder depuis la 4G pour être sûr ?
Sur mon pc, connecté au même réseau local en wifi que le RPI, je peux accéder a mon adresse assistant.nas.mondomain.ovh
ça confirme au moins que le reverse proxy sur le NAS est opérationnel.
Depuis mon téléphone en 4G, ça ne fonctionne pas. J’arrive sur une page « Echec de la connexion sécurisée ». Il m’indique que mon certificat n’est pas valide alors que sur l’adresse de mon nas (nas.mondomain.ovh) il est bien validé par Let’s Encrypt.
Pourtant sur DSM, dans Sécurité->Certificat j’ai bien activé mon certificat pour mon url asssitant.nas.mondomain.ovh
Finalement c’est bon, il fallait accepter l’erreur de sécurité du certificat sur le téléphone.
Par contre j’aimerais bien résoudre le problème de certificat non validé.
La différence par rapport au tuto c’est que j’ai créé un certificat Let’sEncrypt sur mon syno pour ce domaine et je ne peux pas le supprimer pour tester, la possibilité est grisée :