Maak Je Home Assistant Veiliger met SSL

Maak Je Home Assistant Veiliger met SSL

Vandaag duiken we dieper in hoe je SSL (Secure Socket Layer) kunt instellen voor Home Assistant. Ik heb onlangs besloten dit zelf te doen om mijn smart home systeem veiliger te maken en wil deze kennis graag met jullie delen.

Waarom SSL Belangrijk Is

Met SSL creëer je een versleutelde verbinding tussen je Home Assistant server en de browser. Dit is cruciaal voor de beveiliging, vooral als je Home Assistant via een eigen domein benadert. Zonder SSL is je verbinding kwetsbaar voor afluisteren, maar met SSL wordt deze veilig en privé. Als je Home Assistant niet via een domein ontsluit naar buiten je eigen netwerk dan is eigenlijk niet nodig.

Stap 1: Cloudflare Account Aanmaken en Domein Instellen

  1. Maak een Cloudflare account aan. Ga naar Cloudflare en registreer je.

  2. Voeg je domein toe. Ga naar 'Domain Registration' en volg de stappen om je domein toe te voegen.

  3. Stel Cloudflare in als DNS-provider. Volg de instructies om Cloudflare's nameservers aan je domein toe te wijzen.

Stap 2: Subdomeinen en A-Record Instellen

Je kan in deze stap ook ipv een subdomein het hoofddomein instellen.

Gebruik een subdomein voor toegang tot Home Assistant voor extra beveiliging. Bijvoorbeeld:

Instellen in Cloudflare:

  1. Maak een 'A' record aan. Voeg in Cloudflare onder 'DNS' een 'A' record toe met je thuis IP-adres.

  2. Wacht op DNS Propagatie. Dit kan enkele minuten tot enkele uren duren.

Stap 3: Cloudflare API Token Genereren

Dit is nodig voor Let's Encrypt om je domein te verifiëren.

  1. Navigeer naar 'API Tokens' in je Cloudflare account.

  2. Creëer een API-token met 'Edit zone DNS' rechten voor je domein.

  3. Copier het API-token, deze heb je later nodig.

Stap 4: Let's Encrypt Add-on Installeren in Home Assistant

  1. Open Home Assistant en ga naar 'Settings' > 'Add-ons'.

  2. Zoek naar 'Let's Encrypt' en installeer de add-on.

Stap 5: Let's Encrypt Configureren

YAML-configuratie:

In de Let's Encrypt add-on, ga je naar de 'Configuration'-tab en stel je het volgende in:

email: jouwemail@example.com
domains:
  - homenetwork.jouwdomein.tk
  - "*.homenetwork.jouwdomein.tk"
certfile: fullchain.pem
keyfile: privkey.pem
challenge: dns
dns:
  provider: dns-cloudflare
  cloudflare_api_token: jouw-api-token

Stap 6: SSL Certificaten Installeren

Update je configuration.yaml in Home Assistant:

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

Probleemoplossing: SSL-certificaatpaden Corrigeren in Home Assistant

Soms krijg je de foutmelding Invalid config for [http]: not a file for dictionary value @ data['http']['ssl_certificate'] tijdens het controleren van je configuration.yaml. Dit duidt meestal op een probleem met de paden naar je SSL-certificaatbestanden. Hieronder vind je de stappen om dit te corrigeren.

Stap 1: Navigeer naar de Home Assistant Map

Eerst moet je naar de hoofdmap van Home Assistant navigeren:

cd homeassistant
Stap 2: SSL Map Aanmaken

Als er nog geen ssl map is in je Home Assistant directory, maak deze dan aan:

sudo mkdir ssl

Maak symbolische links (symlinks) naar de fullchain.pem en privkey.pem bestanden. Dit zorgt ervoor dat Home Assistant deze bestanden kan vinden en gebruiken. In mijn geval stonden deze bestanden in /root/ssl, maar dit kan variëren afhankelijk van jouw setup.

sudo ln -s /root/ssl/fullchain.pem .
sudo ln -s /root/ssl/privkey.pem .
Stap 4: Bestandseigendom Aanpassen

Zorg ervoor dat de gebruiker homeassistant eigenaar is van de letsencrypt map en de inhoud ervan. Dit is nodig zodat Home Assistant toegang heeft tot deze bestanden.

sudo chown -R homeassistant:homeassistant letsencrypt

Wat Doen Deze Commando's?

  1. cd homeassistant: Navigeert naar de Home Assistant map.

  2. sudo mkdir ssl: Maakt een nieuwe map genaamd ssl aan.

  3. sudo ln -s /pad/naar/bestand .: Maakt een symbolische link naar het SSL-certificaat en de sleutel. Dit is als een snelkoppeling; het vertelt Home Assistant waar de echte bestanden zich bevinden.

  4. sudo chown -R homeassistant:homeassistant letsencrypt: Verandert het eigendom van de map en de inhoud naar de gebruiker homeassistant. Dit zorgt ervoor dat Home Assistant toegang heeft tot de bestanden.

Met deze stappen zou je het probleem met de SSL-certificaatpaden in Home Assistant moeten kunnen oplossen. Blijf experimenteren en aanpassen tot alles soepel draait. En zoals altijd, als je vragen of opmerkingen hebt, deel ze gerust!

Stap 7: Home Assistant Opnieuw Starten

Herstart Home Assistant om de SSL-configuratie te activeren.

Het Instellen van Port Forwarding voor Home Assistant

Deze stap is niet altijd nodig, maar bij mij wel.

Een cruciaal onderdeel van het toegankelijk maken van je Home Assistant van buitenaf, is het instellen van port forwarding in je router. Dit zorgt ervoor dat verkeer van buiten je netwerk correct wordt doorgestuurd naar je Home Assistant server.

Wat is Port Forwarding?

Port forwarding, of poortdoorsturing, is een manier om externe apparaten toegang te geven tot diensten op je privénetwerk. Wanneer je een poort forwardt, vertel je je router om binnenkomend verkeer op een bepaalde poort (in dit geval 443, de standaardpoort voor HTTPS) door te sturen naar een specifiek intern IP-adres en poort (8123 voor Home Assistant).

Hoe Stel Je Port Forwarding In?
  1. Log in op je router. Dit doe je meestal via een webbrowser, door het IP-adres van je router in te voeren.

  2. Zoek naar de port forwarding instellingen. Dit kan variëren per router, dus raadpleeg eventueel de handleiding.

  3. Voeg een nieuwe port forwarding regel toe. Je wilt het externe verkeer op poort 443 doorsturen naar het interne IP-adres van je Home Assistant server op poort 8123.

Voorbeeld van een Port Forwarding Regel:
  • Externe poort: 443 (HTTPS)

  • Interne IP-adres: Het IP-adres van je Home Assistant server.

  • Interne poort: 8123 (standaardpoort van Home Assistant)

Belangrijk: HTTPS Gebruiken in Plaats van HTTP

Zodra SSL en port forwarding correct zijn ingesteld, is het belangrijk om overal https:// te gebruiken in plaats van http://. Dit geldt voor de URL's die je gebruikt om je Home Assistant te benaderen, zowel in webbrowsers als in de mobiele app van Home Assistant.

Aanpassen van de URL in de Home Assistant Mobiele App

  1. Open de Home Assistant app.

  2. Ga naar de instellingen.

  3. Wijzig de basis-URL. Vervang http:// door https:// en zorg ervoor dat je het juiste externe domein gebruikt.

Door deze stappen te volgen, garandeer je dat je Home Assistant-installatie veilig toegankelijk is van buiten je lokale netwerk. Vergeet niet dat elke wijziging in de routerinstellingen invloed kan hebben op je gehele netwerk, dus wees voorzichtig en controleer alles dubbel. Heb je vragen of loop je tegen problemen aan? Laat het me weten, ik help je graag verder!

Afsluiting

Met deze stappen heb je een veiligere Home Assistant setup met SSL. Blijf alert op updates en veranderingen in je netwerkconfiguratie. Voel je vrij om je ervaringen of vragen te delen, en laten we samen werken aan een veiliger slim huis!

Did you find this article valuable?

Support Theo van der Sluijs Blog by becoming a sponsor. Any amount is appreciated!