
Ik heb Home Assistant met externe HTTPS-toegang, maar lokaal gaf de browser steeds “Your connection is not private”. Dat komt omdat het lokale IP-adres of de lokale URL niet in het SSL-certificaat staat. Ook de Home Assistant Android-app werkt dan niet goed door de SSL-fout.
Ik vond geen eenvoudige oplossing online en heb daarom zelf een praktische aanpak gemaakt. Deze methode is ook bruikbaar voor andere lokale applicaties.
Wat je nodig hebt:
Log via SSH in op de Raspberry Pi en installeer certbot:
$ sudo apt install certbot
Controleer de installatie:
$ certbot --version
Omdat ik geen poort 80 beschikbaar heb voor ACME-verificatie, gebruik ik DNS-01 verificatie met acme-dns-certbot-joohoi.
$ wget https://github.com/joohoi/acme-dns-certbot-joohoi/raw/master/acme-dns-auth.py
$ chmod +x acme-dns-auth.py
$ vi acme-dns-auth.py
#!/usr/bin/env python3
$ sudo mv acme-dns-auth.py /etc/letsencrypt/
We maken een wildcard certificaat voor een subdomein, bijvoorbeeld *.home.example.com.
$ sudo certbot certonly --manual --manual-auth-hook /etc/letsencrypt/acme-dns-auth.py --preferred-challenges dns --debug-challenges -d home.example.com
Het script geeft een CNAME-record voor DNS-validatie:
_acme-challenge.home.example.com CNAME a14de1b9-e910-4d91-18bf-07a3763b88e6.auth.acme-dns.io.
Voeg bij je DNS-provider records toe zoals:
| Hostname | Type | Value |
|---|---|---|
| _acme-challenge.home.example.com | CNAME | a14de1b9-e910-4d91-18bf-07a3763b88e6.auth.acme-dns.io. |
| home.example.com | A | <YOUR_PUBLIC_HOME_IP_ADDRESS> |
| rpi.home.example.com | A | |
| extern.home.example.com | CNAME | home.example.com |
Uitleg:
_acme-challenge.home.example.com: DNS-verificatie voor ACME.home.example.com: publieke IP van je router.rpi.home.example.com: lokaal IP-adres van de Raspberry Pi.extern.home.example.com: externe URL voor bijvoorbeeld Home Assistant.Wacht daarna tot DNS-propagatie klaar is en start certbot opnieuw. Als het nog niet lukt, controleer dan vooral het _acme-challenge record.
Forward indien nodig de poorten vanaf je router naar de Raspberry Pi. Voor Home Assistant is dat standaard 8123/tcp.
Lokaal netwerk
Gebruik bijvoorbeeld:
https://rpi.home.example.com:8123
Het certificaat is nu geldig voor het gebruikte domein.
Externe toegang
Gebruik bijvoorbeeld:
https://extern.home.example.com:8123
Ook hier is het certificaat geldig voor dezelfde domeinstructuur.