✅ Accès de l’extérieur en HTTPS avec Nginx Proxy Manager

Le protocole HTTPS vous permet d’avoir une connexion sécurisée entre Home Assistant (votre serveur) et le navigateur sur lequel vous êtes connecté (votre client) en cryptant les données qui transitent entre eux. L’utilisation de ce protocole devient de plus en plus indispensable et les navigateurs Web commencent à refuser de se connecter à des sites en HTTP.
Si vous souhaitez utiliser un nom de domaine (NDD) Freebox et le fournisseur de certificats Let’s Encrypt, vous pouvez vous diriger vers l’article Accès de l’extérieur en HTTPS avec un NDD Freebox et Let’s Encrypt, et celui-ci pour DuckDns, nous allons voir ici comment utiliser un autre solution via l’add-on Nginx Proxy Manager.

Niveau requis

  • Débutant / Intermédiaire / Avancé

Matériels nécessaires / Matériels utilisés / Prérequis

  • Version de HA : v2020.12.1,
  • Avoir un nom de domaine que je noterai <mon-ndd> dans la suite de ce tutoriel,
  • connaitre le modèle de son routeur.

L’architecture

Voici un schéma (merci à @Pozzi :wink:) pour expliquer le flux que nous allons mettre en place.

Configuration de Home Assistant

Nettoyage de la configuration

Il faut vérifier qu’aucune autre installation de certificat ne viendra en conflit avec l’installation que nous allons mettre en place. Nous allons vérifier les fichiers de configurations YAML via File Editor (voir Installer File Editor et modifier vos fichiers de configuration)

Via le Menu latéral > File Editor, choisissez le fichier config/configuration.yaml

Si vous voyez les lignes surlignées en bleu, commentez les en ajoutant en début de ligne le caractère # :

Si vous avez fait des modifications dans le fichier configuration.yaml, cliquez sur le bouton sauvegarder en haut à droite image

Pour être sûr que votre configuration est toujours valide, dans le Menu latéral > Configuration > Contrôle du serveur > VERIFIER LA CONFIGURATION.

Accès interne

Comme on a pu le voir dans le schéma précédent, il faut pouvoir accéder à Home Assistant via l’URL suivante :

http://<ip_hote_ha>:8123

<ip_hote_ha> étant une adresse IP interne sous la forme 192.168.x.x.

Pour pouvoir accéder à Home Assistant via cette URL, il faut la configurer dans menu latéral > Configuration > Général > URL interne puis cliquez sur ENREGISTRER.

Vérifiez que vous avez accès à votre Home Assistant en ouvrant votre navigateur et en renseignant dans la barre d’adresse :

http://<ip_hote_ha>:8123

En remplaçant <ip_hote_ha> par l’adresse IP du serveur hébergeant votre Home Assistant.

:information_source: Renseigner l’URL externe n’est pas obligatoire puisque c’est Nginx qui sera le point d’entrée du flux HTTPS.

Prise en compte des modifications

Dans le Menu latéral > Configuration > Contrôle du serveur > VERIFIER LA CONFIGURATION.

Si la configuration est valide, cliquez sur REDEMARRER

Routage des ports (NAT)

En suivant le tutoriel Redirection des ports, ajouter les redirections :

  • vers le port 80 de votre hôte de Home Assistant
  • vers le port 443 de votre hôte de Home Assistant

Installation

L’installation est assez simple, si vous maitrisez la langue de Shakespeare, vous pouvez suivre ce tutoriel.
Sinon je vais vous détailler la procédure d’installation.

MariaDB

Il faut installer MariaDB si vous ne l’aviez pas déjà pour autre chose. C’est un prérequis à l’installation de Nginx Proxy Manager (sa configuration est sauvegardée dans la Base de données MariaDB).

Suivez le tutoriel Ajouter une extension Officielle ou Non Officielle sur Home Assistant en installant un add-on Officiel et en remplaçant Mosquitto Broker par MariaDB.

Avant de cliquer sur START, n’oubliez pas de modifier le utilisateur / mot de passe dans la configuration de l’add-on MariaDB en cliquant sur l’onglet Configuration de cet add-on.

Une fois configuré, cliquez sur SAVE puis revenez sur l’onglet Info pour cliquez sur START.

Vérifiez les logs en cliquant sur l’onglet Logs, pour être sûr que tout c’est bien passé. N’hésitez pas à cliquer sur REFRESH en bas à gauche.

Nginx Proxy Manager

Il faut installer le nouvel add-on Nginx Proxy Manager.

Procédez de la même manière que précédemment avec MariaDB.

Aucune configuration n’est nécessaire pour cet add-on, donc une fois installé, vous pouvez cliquez sur START.

Vérifiez bien évidemment les logs pour être sûr que tout se déroule bien.

Une fois installé, revenez sur l’onglet Info, puis cliquez sur OPEN WEB UI.

Renseignez le compte admin@example.com / changeme pour votre 1ère connexion.

Il vous sera demandé de renseigner le compte Admin puis un nouveau mot de passe (surtout ne l’oubliez pas !).

Configuration

Le nom de domaine

Pour accéder à l’interface de Nginx Proxy Manager, il faut soit :

  • passer par Supervisor > Dashboard > Nginx Proxy Manager > OPEN WEB UI
  • si ça ne fonctionne pas, essayez via l’URL http://ip_hote_ha:81/login

Renseignez le compte et mot de passe Admin que vous avez mis à jour dans le précédent paragraphe Installation Nginx Proxy Manager.

Dans l’interface de Nginx Proxy Manager, cliquez dans le menu sur Hosts

proxyManagerHosts

Puis Proxy Hosts

Puis sur Add Proxy Host.

Dans la nouvelle fenêtre New Proxy Host, renseignez comme suit :

  • Domaine Names : le nom de domaine que vous avez <mon-ndd>, ne pas oubliez de cliquer sur add <mon-ndd>
  • Scheme : http
  • Forward Hostname / IP : l’IP de l’hôte de Home Assistant (voir URL Interne)
  • Forward Port : 8123
  • Websockets Support : coché

Cliquez sur SAVE

Testez si vous pouvez accéder à votre Home Assistant via votre nom de domaine en HTTP en cliquant sur le nom de votre domaine dans la colonne SOURCE.

Le passage en HTTPS

Si vous pouvez vous connecter à votre Home Assistant via votre nom de domaine, vous pouvez passer à la suite.

Nous allons maintenant passez votre Home Assistant en HTTPS en cliquant sur les 3 petits points complètement à droite sur la ligne de votre SOURCE.

Cliquez sur Edit,

puis sur l’onglet SSL, choisissez Request a new SSL Certificat dans SSL Certificate puis cochez Force SSL, activez I Agree ... puis Save.

Let’s Encrypt va vous fournir un certificat sur votre Home Assistant.

Nettoyage

La redirection du port 80 n’étant plus nécessaire, il est bon de la supprimer.

Depuis la 2021.7

Il est maintenant nécessaire d’ajouter des clés dans la configuration de HA afin d’autoriser l’utilisation d’un reverse proxy.

Dans le fichier de configuration de HA configuration.yaml ajouter :

#configuration.yaml
[...]

http: #si cette balise n'existe pas, ajoutez la, sinon ajouter seulement la suite (pas de duplication)
  use_x_forwarded_for: true
  trusted_proxies:
    - 172.18.0.1
[...]

Si vous avez du mal trouver l’@ip à renseigner, procédez comme suit :

  1. Renseigner l’adresse 10.0.0.1 ou 172.16.0.1 ou 192.168.1.1
    Ces adresses correspondent aux premières @ip privées
  2. Assurez-vous d’avoir accès au log de HA home-assistant.log
  3. Une fois le reverse proxy en fonctionnement, redémarrez HA
  4. Accédez au fichier de log home-assistant.log
  5. Vous verrez apparaitre plusieurs lignes indiquant depuis quelle @ip le reverse proxy est hébergé :
2021-07-10 23:46:36 ERROR (MainThread) [homeassistant.components.http.forwarded] Received X-Forwarded-For header from an untrusted proxy 172.18.0.1
  1. Remplacer l’@IP dans le fichier de configuration par celle que HA vous indique
  2. Redémarrez HA

Voilà, c’est fini

Vous pouvez désormais accéder à votre Home Assistant via https://<mon-ndd> et ce, depuis vos navigateurs, comme sur Home Assistant Companion (en modifiant l’URL dans Configuration de l'application > URL de Home Assistant).

Une question, un problème

Besoin d'aide ? Cliquez ici !

Remerciement(s)

Annexes

Les sources

Suivi des modifications

  • 10/07/2021 : Ajout des clés use_x_forwarded_for et trusted_proxies nécessaire depuis la 2021.7 @Clemalex
  • 30/01/2021 : Passage en article officiel (:hacf_tuto: ) @Sylvain_G
  • 15/01/2021 : Ajout du schéma de l’architecture @Sylvain_G
  • 30/12/2020 : Ajout lien Home Assistant Companion & chapitre Nettoyage, Mise à jour des sources @Sylvain_G
  • 29/12/2020 : Initialisation de l’article @Sylvain_G
7 « J'aime »
Warning avec Nginx Proxy Manager
Ajout certificat Let' Encript HTTPS . l'acces exterieur ne fonctionne pas
Accès extérieur en 4G avec NGINX & Freebox Delta
Plus d'accès extérieur avec NginX Proxi Manager
Accéder a Home Assistant depuis l’extérieur en HTTPS avec un NDD Freebox et Let's Encrypt
Connexion en local avec Ipad (sans internet)
Mise en place de NGINX Proxy Manager
Accès externe impossible en https avec Nginx et Duckdns
Problème d'accès NDD Freebox via Nginx Proxy Manager (ProxMox LXC)
Acces distance duckdns ne fonctionne plus depuis m.a.j de NGNIX MANAGER 1.0.0
Home Assistant Companion Android
Acces distance duckdns ne fonctionne plus depuis m.a.j de NGNIX MANAGER 1.0.0
Architecture réseau
Présentation QuF
Let’sEncrypt : des erreurs dans le journal liées à SSL (ou à autre chose)?
Let’sEncrypt : des erreurs dans le journal liées à SSL (ou à autre chose)?
Taille backup et instance
Besoin d'aide avec Nginx Proxy Manager
Plus d’accès en HTTPS
Plus d’accès en HTTPS
Problème d'accès à distance subit
Problème d'accès externe duckdns certificat introuvable?
Nginx SSL ERROR
Accès en https avec un vieille tablette android
Nginx SSL ERROR
Impossible de se connecter à Home Assistant (Application)
WireGuard & HA compagnon
Accès Distant HTTPS (DuckDNS) + Local HTTP (NGINX) facile (avec les infos manquantes pour les freebox entre autres)
Problème interface home assistant avec duckdns
Présentation QuF
Me connecter à distance gratuitement et sécurisé?
Nginx Proxy Manager et HA
Problème de configuration de Rivers proxy
Accès connexion extérieur, derrière ngnix sur container station qnap
Accès extérieur en 4G avec NGINX & Freebox Delta
Nginx proxy manager : impossible de créer le certificat - internal error
Adresse accès HA différente WAN vs. LAN
Nginx Proxy Manager connexion locale HTTP ne fonctionne pas
Pb intégration NGInx pour accès à distance à HA
Install NGinx pour acces à distance
Renouvellement de certificat SSL impossible sur NGINX
Nginx : problème d'accès en https://
Aide changement connexion entre addon duck dns et nginx proxy manager
NGINX fonctionne-t-il en HAOS?
Pas d'accès vers l'extérieur
Internal Erreur dans Edit Proxy Host sur onglet SSL
Warning avec Nginx Proxy Manager
NginX Proxi Manager perd la connexion dès que la Livebox reboot
Nginx proxy manager : impossible de créer le certificat l’êtes encrypt
Accéder à Home Assistant à distance
Reverse proxy - Compréhension et mise en place
[Aide] Accès HA impossible en local
Acces distant Home assistant - sous domaine et certificats SSL
Depuis la manip duckdns, plus d’accès en local à mon iPad et gsm androïd
File Editor et nginx proxy
URL externe et URL interne avec duckdns en mode local
Si utiliser un reverse proxy pour plusieurs services
Problème d'installation de Nginx Proxy Manager
Problème de configuration de DuckDNS
Installation de Nginx et questions subsidiaires
Petit problème d'accès (HTTPS ou SSL?) add on chrome / mobile
Accès extérieur via Nginx et alerte browser / app companion
Besoin d'aide sur Nginx proxy avec nom de domaine Freebox
Problème connection NPM...même impossible
Home Assistant via Reverse Proxy Synology
Ralentissement de l'accès à home assistant depuis l'activation Https
Impossible d'accéder a Home Assistant à distance Proxmox + HAS + NDD + OVH + NGINX Proxy Manager
Message trusted_proxies
HA, Nginx Proxy Manager et Ddclient sur docker. Accès web OK mais uniquement en http
Erreur python 3.9
Accéder a Home Assistant depuis l’extérieur en HTTPS avec un NDD Freebox et Let's Encrypt
Présentation Jérémie