Nastavení HTTPS pro Home Assistant

Pokud budete přistupovat k Home Assistant i mimo domácí síť, je nezbytně nutné přístup zabezpečit pomocí šifrovaného https spojení.

Nejjednodušší pro běžného uživatele je použít Nabu Casa cloud. Nabu Casa je autor Home Assistant a pro bezpečný vzdálený přístup nabízí svůj cloud. Tato služba je zpoplatněná a stojí 5 dolarů měsíčně. Díky tomu ale není nutné řešit zabezpečení na Home Assistant a není nutné mít ani veřejnou IP adresu, která obvykle také není zdarma. Pro běžného uživatele je to tedy optimální možnost, protože je to jednoduché, rychlé, bezpečné a bez starostí. Navíc tento poplatek 5 dolarů měsíčně je použit mimo jiné i na financování vývoje Home Assistant, protože je to jediný zdroj příjmů. Díky tomu samotný Home Assistant může být nabízený zcela zdarma.

Home Assistant publikovaný do internetu zabezpečte šifrovaným HTTPS spojením.

Nicméně já mám rád věci pod vlastní kontrolou a nevadí mi si s tím hrát, takže jsem se rozhodl si bezpečné vzdálené spojení zprostředkovat sám. Doma mám navíc zakoupenou statickou veřejnou IP adresu.

Níže uvedený postup předpokládá, že vlastníte veřejnou statickou IP adresu a máte k dispozici nějaké doménové jméno, které pro přístup budete využívat. A že dané doménové jméno máte nasměrované na vaši veřejnou IP adresu a máte povolenou komunikaci na potřebných portech, případně nastavený port forwarding. Pokud vám tyto věci nic neříkají, nejlepší bude využít Nabu Casa cloud nebo poprosit někoho zkušenějšího o pomoc 🙂

Získání certifikátu pro HTTPS na Home Assistant

Nejdříve je nutné získat certifikát, kterým bude https spojení šifrováno. Existují tři základní možnosti:

  1. Vlastní self-signed certifikát. Toto řešení nic nestojí a nejsou s tím ani žádné administrativní starosti, protože takový certifikát může mít platnost klidně třeba 10 let. Problém je ale v tom, že webové prohlížeče budou při přístupu zobrazovat varování, že použitý certifikát není důvěryhodný. To lze částečně obejít lokální instalací dané autority, ale není to optimální.
  2. Získání placeného certifikátu s delší platností. Druhou možností je získání certifikátu od nějaké certifikační autority, která vydává certifikáty s delší platností a jejich obnovu tedy není nutné automatizovat. Takové certifikáty mají platnost obvykle 1 rok a lze je tedy získat a instalovat manuálně, aniž by to znamenalo nějakou otravnou opakující se práci.
  3. Získání zdarma dostupného certifikátu. Tato možnost je vhodná a velmi častá, ale vyžaduje nějakou automatizaci. Naštěstí součástí oficiálního add-on store v Home Assistant je add-on pro Let’s Encrypt. Let’s Encrypt je certifikační autorita, která vydává důvěryhodné certifikáty zcela zdarma. Tyto certifikáty mají ale omezenou platnost maximálně 90 dnů. Je tedy nutné pomocí nějakého automatizovaného postupu je pravidelně měnit. A to právě zajistí výše uvedený add-on.

Já jsem se rozhodl jít cestou certifikátu s delší platností. Důvod byl ale primárně ten, že mám k dispozici důvěryhodné certifikáty s delší platností od certifikační autority DigiCert zcela zdarma a navíc tyto certifikáty využívám i pro jiné služby. Níže uvedený postup tedy popisuje tento scénář s manuálně získaným důvěryhodným certifikátem.

Instalace certifikátu pro Home Assistant

Instalace certifikátu pro Home Assistant je velmi jednoduchá. Stačí pouze nakopírovat soubor s certifikátem ve formátu PEM + privátní klíč k certifikátu do adresáře /ssl/.

Konfigurace Home Assistant pro HTTPS

Nakopírované certifikáty je potřeba použít pro HTTPS. Nejdřív je potřeba editovat soubor /config/configuration.yaml a v něm konkrétně část http, kde webovému serveru Home Assistant řekneme, kde hledat certifikát pro zabezpečenou komunikaci a na jakém portu komunikovat. Můj soubor s certifikátem ve formátu PEM má jméno selfiehome.cz.pem a soubor s privátním klíčem k certifikátu má jméno selfiehome.cz.key. Ukázka konfiguračního souboru při použití standardního portu 443 pro https spojení je níže.

Chcete pomoct s nastavením HTTPS pro Home Assistant? Ozvěte se nám!

Následně je potřeba ve webovém rozhraní Home Assistant jít do Configuration – General a nastavit interní a externí URL tak, aby obsahovala https a zvolené doménové jméno, které pro přístup k Home Assistant budete používat včetně případně portu, pokud nepoužíváte standardní https port 443/TCP.

Nyní již můžete ověřit správnost konfigurace a Home Assistant restartovat.

Tím je konfigurace hotová a měli byste vidět Home Assistant publikovaný na zvolené adrese a portu s nainstalovaným certifikátem.

Pokud hledáte inspiraci, co (a jak) dalšího můžete s Home Assistant dělat, můžete se podívat na další naše články o Home Assistant.