NPM – Nginx Proxy Manager
Contexte :
- Home-assistant est installé dans une VM (192.168.0.100:8123).
- Cette VM est gérée par l’hyperviseur Proxmox VE.
- Dans le cadre d’une installation de certificats SSL je devais pouvoir imposer mes certificats.
- Installation de NPM en standalone pour un réemploi futur.
Là vous allez me dire : « Oui mais Julien il y a déjà un addon pour Home-Assistant qui fonctionne bien… ! »
Certes oui, ce serait simple mais… trop simple car dans le futur, je vais avoir besoin d’une instance à part entière pour gérer le reverse-proxi à l’échelle de mon homelab tout entier et pas seulement de Home-Assistant !
Installation
Procédure d’installation (Proxmox LXC) :
- On se rend sur le site des scripts pour Proxmox afin de trouver un conteneur LXC.
- On lit bien les informations (même si je n’ai pas bien saisi en vrai lol)
- On lance le script
- Je l’installe avec l’option #2 (même si première aurait pu suffire je pense…)
- Au bout d’un moment j’ai le message suivant :
Shell - Linux
✔️ Installed pnpm
Would you like to install an older version (v2.10.4)? <y/N>
- Je réponds que non <
N>
Personnalisations
- Coté Freebox (DHCP) : bail fixe (192.168.0.104) afin de mieux refléter ce que je veux (numéro du conteneur = dernier numéro de l’adresse IP). C’est simple est facile de s’y retrouver comme ça.
- Proxmox : changement du conteneur. DNS > Nom d’hôte
- Changement du numéro de démarrage/arrêt :
10(pas prioritaire, dernier quoi)
Première connexion à NPM
- A l’adresse indiquée (192.168.0.104), je tombe sur un austère message de « Félicitations » m’invitant à aller sur l’administration sauf que… c’est où !?!
- Il faut en fait spécifier le numéro du port : <
81> - Email par défaut :
admin@example.com - Mot de passe par défaut :
changeme
- Il faut en fait spécifier le numéro du port : <
- Dès l’ouverture, nous sommes invité à mettre à jour ces informations.
Certificats SSL/TLS
Importation des certificats dans NPM
Nous avions vu comment créer un certificat SSL/TLS.
Maintenant, il faut l’importer avant de pouvoir le relier à notre host (domaine : homeassistant.local)
Nous allons tout simplement utiliser l’interface graphique (UI) pour plus de facilité.
- Cliquez sur « SSL Certificates » en haut
- Sur la droite, bouton « Add SSL Certificate »
- Sélectionnez « Custom«
- Name :
homeassistant.local(ou tout autre nom, c’est juste une étiquette) - Certificate Key :
homeassistant.local-key.pem - Certificate :
homeassistant.local.pem - Intermediate Certificate : <
vide>
Une fois installé, le certificat apparait mais avec un point rouge en bout de ligne.
C’est tout à fait normal car il n’est pour l’heure associé à aucun host.
Les hosts
Les « hosts » sont comme des URL propres qui permettent de désigner un site nom pas avec son adresse IP mais via un nom intelligible.
Dans mon cas, ce nom d’host est déjà défini par défaut (modifiable) et il s’agit de homeassistant.local
- ➡️On se rend dans la section « Proxi Hosts » et on clic sur le bouton à droite « Add Proxi Host« .
Onglet : Details
-
- Domaine names :
homeassistant.local
Oui on peut en saisir plusieurs qui vont désigner la même adresse IP.
👉 Penser à appuyer sur « Entrée » pour bien valider votre saisie. - Scheme :
http
C’est le traffic normal que l’on vise à rediriger. Donc pas de https ici. - Forward Hostname / IP :
192.168.0.100 - Forward Port :
8123 - Cache Asset :
<Non>
⚠️ Ne pas cocher l’option Cache Assets. Du moins, comprennez à quoi cela sert-il. - Block Common Exploits :
<Oui> - Websockets Support :
<Oui>
- Domaine names :
Onglet : SSL
C’est précisément ici que l’on va associer le certificat au host. ENFIN !
- SSL Certificate : Recherchez le certificat correspondant à votre site :
homeassistant.local - Force SSL : <
Oui> - HTTP/2 Support : <Oui>
- HSTS Enabled : <
Non> Si votre certificat est fait pour plusieurs domaines, cochez le. - HSTS Subdomaines : <
Non> Si vous comptez faire des sous-domaines seulement.
Pour finir, bien sure il faut valider.
Vérifications
Le témoin vert signifie simplement que le proxi est activé. C’est différent de « fonctionnel » !
Si vous vous rendez cette fois dans l’onglet « SSL Certificates » vous pourrez observer que le certificat est associé à un host.
Configuration de HAOS
Ce n’est pas tout, encore faut-il préciser à home-assistant comment réagir lorsque l’on vient l’interroger/contacter via le reverse proxy Nginx.
- A l’aide de l’addon Advanced Terminal & SSH (ou tout autre moyen), éditez le fichier configuration.yaml
yaml
http:
ip_ban_enabled: true
login_attempts_threshold: 5
trusted_proxies:
- 192.168.0.104 #Nginx
use_x_forwarded_for: true










