Nadat ik al lang op zoek was naar een mogelijkheid om “van buiten” mijn lokale netwerk secure (dus met https) met mijn home Assistant server te kunnen verbinden las ik op deze website het artikel “Access Your Home Assistant Server Remotely With DuckDNS and Let’s Encrypt” hoe dat kan (Met dank aan Ravi Singh).
Dit artikel was precies de oplossing en hoewel ik nu geen secure subdomein van mattizz.nl heb, komt deze oplossing dicht in de buurt. Volgens mijn webhoster wijst het door mij aangemaakte mattizz.nl subdomein (A-record) naar mijn (internetprovider) thuis IP-adres en is deze verbinding niet te versleutelen.
Het subdomein bij Letsencrypt versleutelen lukte niet omdat Letsencrypt dan ziet dat het mattizz.nl domein al een DNS verwijzing heeft en deze niet gewijzigd kan worden door Letsencrypt.
Maar hieronder de oplossing:
Krijg veilig toegang tot je slimme huis via internet zonder abonnementskosten te betalen.
Als u veilig toegang wilt krijgen tot je Home Assistant-instantie via internet, kunt u kiezen voor het eigen cloudabonnement van het platform, genaamd Nabu Casa. Hiermee hebt je niet alleen toegang tot jouw slimme huis en kun u al je apparaten overal bedienen, maar ondersteunt u ook de ontwikkelaars.
Als u echter geen maandelijks abonnementsgeld wilt betalen, kunt u in plaats daarvan de add-ons DuckDNS en Let’s Encrypt gebruiken om Home Assistant te configureren en veilig toegang te krijgen tot je slimme huis via internet.
Voordat je begint
We zullen de ‘port forwarding’-methode gebruiken om onze lokale Home Assistant-server bloot te stellen aan internet. Hoewel port forwarding je op afstand toegang geeft tot je smart home, kan het ook gevaarlijk zijn als je de verbinding niet beveiligt. Wanneer je een lokale server zoals Home Assistant blootstelt aan het boze internet via een port forwarding-methode, bestaat er altijd een risico op ongeautoriseerde toegang. Bedreigingsactoren kunnen je netwerk binnendringen en volledige controle over je apparaten hebben. Als je de verbinding echter versleutelt met SSL/TLS (https) en enkele best practices volgt terwijl je de server blootstelt aan de buitenwereld, kun je dergelijke gevallen voorkomen en veilig toegang krijgen tot de server.
Toevoeging: Uiteraard is het hierbij aan te raden om 2FA (Two-Factor Authentication) op de inlog van Home Assistant te zetten zodat de beveiliging nog verder wordt verhoogd. Hier meer uitleg over het instellen daarvan.
Het DuckDNS Subdomain instellen
Ga naar DuckDNS.org en log in met je Google-, Reddit-, GitHub-, Twitter- of Persona-account. Voltooi de captcha en maak vervolgens een DuckDNS-subdomein aan. De naam moet uniek zijn en bij voorkeur gemakkelijk te onthouden. We zullen deze URL gebruiken om op afstand verbinding te maken met onze Home Assistant-instantie.
Het subdomein, indien beschikbaar, wordt aan je account toegevoegd. Zorg ervoor dat je je openbare IP-adres in het huidige IP-veld typt (bij mij was het al ingevuld). Je kunt je openbare IP-adres vinden door bijvoorbeeld naar de website https://www.watismijnip.nl te gaan.Kopieer ook het DuckDNS-token. Bewaar dit token veilig, want het is vertrouwelijk.
Port Forward instellingen op de router
Log in op je router en configureer de port forwarding om van buiten je netwerk, op poort 8123 toegang te krijgen tot de Home Assistant interface. Gebruik Google Zoeken om te leren hoe u port forwarding kunt inschakelen in je specifieke routermodel. Je kunt ook naar Port Forward gaan en op de fabrikant van je router klikken, en vervolgens op het modelnummer of de naam om te zien hoe je port forwarding in je router kunt inschakelen. Je kunt ook verschillende videogidsen op YouTube vinden over hoe je port forwarding in verschillende routers instelt. Je moet twee TCP-poorten forward configureren:
– 8123 voor toegang op afstand tot de Home Assistant interface
– 443 om integraties zoals Alexa Media Player te gebruiken
Configureer DuckDNS Add-On in Home Assistant
Installeer en configureer de DuckDNS add-on in Home Assistant door deze stappen te volgen:
1. Open Home Assistant en ga naar Instellingen > Add-ons,
2. Klik op de Add-On Store-knop en zoek naar de DuckDNS-add-on,
3. Selecteer de DuckDNS-add-on uit de zoekresultaten en klik vervolgens op de knop Installeren
4. Ga na de installatie naar Configuratie en klik bovenaan op de drie puntjes. Kies Bewerken in YAML.
Plak de volgende code in de YAML-editor. Zorg ervoor dat je het token en de domein-URL vervangt door je DuckDNS-subdomein-URL en token:
domains:
– domein.duckdns.org
token: a269c73b-b185-44e3-87ea-77ca759bc9c4
aliases: []
lets_encrypt:
– accept_terms: true
– algo: secp384r1
– certfile: fullchain.pem
– keyfile: privkey.pem
seconds: 300
Klik op Opslaan. Schakel ook de opties Start bij opstarten en Watchdog in de DuckDNS-add-on in. Klik op Start om de DuckDNS-add-on te starten en klik op Logboek. Blijf op de knop “Vernieuwen” drukken totdat je Fullchain.pem maken ziet. Na enige tijd … Klaar!Update Configuration.yaml
Open het configuratie.yaml-bestand (ik gebruik daar de Studio Code Server add-on voor) en voeg de volgende regels toe die de Home Assistant vertellen waar het SSL-certificaat en de sleutel zijn opgeslagen voor een beveiligde HTTPS-verbinding:
http:
ssl_certificate: /ssl/fullchain.pem
ssl_key: /ssl/privkey.pem
Klik op Opslaan en ga naar Developer Tools > Configuratie controleren. Controleer of Home Assistant wel of niet start. Zo ja, klik dan op “Opnieuw opstarten” om de wijzigingen door te voeren.
Na het herstarten kan het zijn dat je een certificaatwaarschuwing krijgt als je de Home Assistant opent via een lokaal IP-adres. Deze waarschuwing kan worden genegeerd. Gebruik in plaats daarvan de hostnaam om toegang te krijgen tot de Home Assistant op het lokale netwerk. In dit stadium zou je via de DuckDNS-subdomein URL toegang moeten hebben tot en kunnen inloggen op je Home Assistant. Bij mij werkte het zonder problemen. Succes !
Home Assistant automatische vernieuwing certificaat
Een Let’s Encrypt-certificaat is maximaal 3 maanden geldig en het is daarom gebruikelijk dat deze (automatisch) binnen deze periode worden vernieuwd. Een makkelijk in Home Assistant te gebruiken methode is hier uitgelegd op het tech blog van Derek Seaman.
Beste Rene,,
Bedankt voor je informatieve webpagina over DUCKDNS en voor mij tot nu toe de duidelijkste en goed te begrijpen informatie. Ik ben een absolute n00b op dit gebied maar probeer mijn HomeAssistent van buitenaf te benaderen en tot nu toe zonder veel succes.
Ik heb je how-to tot en met het editen met YAML gevolgd maar krijg bij opslaan een foutmelding, zie onder
domains:
– mijn naam.duckdns.org
token: mijn token
aliases: []
lets_encrypt:
– accept_terms: true
– algo: secp384r1
– certfile: fullchain.pem
– keyfile: privkey.pem
seconds: 300
De foutmelding; ik heb mijn domeinnaam en token verandert in “mijn domein” en “mijn token”
Mislukt om add-onconfiguratie op te slaan: Missing required option ‘domains’ in Duck DNS (core_duckdns). Got {‘domains’: [None, ‘mijn domein.duckdns.org’], ’token’: ‘mijn token’, ‘aliases’: [], ‘lets_encrypt’: {‘accept_terms’: False, ‘algo’: ‘secp384r1’, ‘certfile’: ‘fullchain.pem’, ‘keyfile’: ‘privkey.pem’}, ‘seconds’: 300}
Kan je zien wat ik verkeerd doe? Alvast bedankt
Henk
Hoi Henk, bedankt voor je compliment maar blijkbaar is het toch niet duidelijk genoeg want het werkt bij jou helaas niet. Op mijn website verzamel ik zaken die ik zelf heb uitgezocht en ik ben denk ik net als jij een gebruiker en geen expert. Vaak kost het veel tijd om dingen uit te zoeken omdat er bijna nooit duidelijk is beschreven wat je waar moet invullen. Zo ook met dat DuckDNS. Zoals ik het beschreven heb werkte het bij mij en de foutmeldingen die je beschrijft kan ik niet oplossen omdat ik daar de kennis niet voor heb. Ik heb uiteindelijk een Nabu Casa registratie genomen omdat ik die op die manier steun en alle https problemen waren opgelost. Ik heb na wat uitzoeken ook mijn mattizz.nl domein gekoppeld aan Nabu Casa dus is mijn HA ook te vinden op https://homeassistant.mattizz.nl (ik heb dit ook uitgezocht en staat ook op mattizz.nl). Ik denk dat ik je niet verder kan helpen, ik heb alle stappen bij mij nog een keer doorlopen (al staan de DuckDNS en de Letsencrypt addons bij mij uit) en zou het zo uitgevoerd moeten werken. Weet je zeker dat he het DuckDNS token 1 op 1 hebt overgenomen in de DuckDNS addon? Groet van Rene