HTTPS certifikát v lokální síti

Re:HTTPS certifikát v lokální síti
« Odpověď #15 kdy: 03. 04. 2024, 17:22:53 »
Používat v diskusi o HTTPS serverech a reverzních proxy zkratku HA pro Home Assistant bez uvedení celého názvu alespoň při prvním použití je poněkud matoucí :-) Ne každý si musí pamatovat, že tu byl včera zmíněn Home Assistant a snadno „HA“ zamění za HAProxy, která se v kontextu HTTPS serverů a reverzních proxy vyskytuje přeci jen častěji…

Hlavní rozdíl je, že v Caddy je HTTPS by default a musel byste ho naopak explicitně vypnout, kdybyste ho nechtěl. Zatímco v nginx to musíte nakonfigurovat ručně včetně automatické obnovy certifikátů externím nástrojem, nebo si musíte k nginxu doinstalovat ještě něco, kde to nakonfigurujete třeba přes nějaké klikátko.

Samozřejmě, pokud už někdo nginx má nainstalovaný a zprovozněný a jenom přidá další doménu, bude to jednoduché. Ale pokud ten reverzní proxy server staví od nuly, je konfigurace Caddy serveru jednodušší.


Zopper

  • *****
  • 770
    • Zobrazit profil
Re:HTTPS certifikát v lokální síti
« Odpověď #16 kdy: 03. 04. 2024, 20:47:25 »
Ok, tak tedy Home Assistant, to máte pravdu.  :D Co se tu ale snažím říct je, že zrovna v tomhle případě, kdy tazatel uvedl, že mu jde konkrétně o schování Home Assistenta za SSL, je ten nginx proxy manager opravdu triviální, a troufám si říct že o trošku přátelštější, než konfigurace Caddy. Všechno, co je totiž potřeba udělat je:
  • nainstalovat do Home Assistenta addon nginx-proxy-manager z oficiálního community repozitáře (což Caddy není, pro ten je třeba přidat samostatný repozitář)
  • povolit v Home Assistentu proxy dotazy (ať už jde o nginx, Caddy, nebo něco jiného)
  • pustit ten addon a vyplnit dva jednoduché formuláře: proxy a ssl, kde v tom začerněném políčku u SSL člověk může vybrat Cloudflare a tucet dalších DNS poskytovatelů, a zadat tam svůj API klíč, aby to mohlo udělat DNS challenge.
A to je všechno - ten addon je předkonfigurovaný a pořeší si certifikát, automaticky ho obnoví...

I v Caddy bych musel vyplnit všechny tyhle informace a navíc místo klikátka to dělat v konfiguračním souboru, kde je přece jen snazší udělat chybu. Odkud a kam má dělat proxy, že má použít Let's Encrypt, nějakou formu autentizace vůči DNS poskytovateli (a nebo dělat manuální úpravy DNS záznamů)... To, že to začne fungovat po HTTP hned, jak vyplním první formulář, takže si to můžu otestovat dřív, než se do toho zamíchá ještě SSL, je drobný bonus.

Pokud by to člověk instaloval bokem, tak Caddy možná vyhraje. Ale tohle single-purpose řešení pro Home Assistenta mě nenapadá, jak by šlo rozumně dál zjednodušit.

A pokud má člověk Home Assistenta jako HAOS, jejich distribuci, a ne jen vlastnoručně puštěnou službu (což zjednodušuje zálohování a obnovu na nové železo), tak ty addony jsou jediný způsob, jak tu proxy pustit na stejném stroji.

« Poslední změna: 03. 04. 2024, 20:49:48 od Zopper »

Re:HTTPS certifikát v lokální síti
« Odpověď #17 kdy: 03. 04. 2024, 21:02:51 »
Ano, pokud chce to HTTPS jen pro Home Assistanta, bude ten plugin asi jednodušší řešení. Já jsem automaticky předpokládal, že za tu reverzní proxy bude postupně chtít přidat další servery, tím pádem bude lepší vybudovat si rovnou  reverzní proxy jako samostatný server (software, ne nutně samostatné železo).

Zopper

  • *****
  • 770
    • Zobrazit profil
Re:HTTPS certifikát v lokální síti
« Odpověď #18 kdy: 03. 04. 2024, 22:32:40 »
Jasně, to dává smysl. Na druhou stranu, v rámci domácí LAN je to SSL z hlediska bezpečnosti celkem zbytečné. Jediný důvod, proč jsem si ho do Home Assistenta dával já, je, že přístup k USB-Serial převodníku jde v prohlížeči povolit jen pro HTTPS weby. Tj. pokud chci mít ESPHome běžící pod Home Assistentem a pohodlně flashovat ESP32 a podobné destičky s minimem námahy… Tak stavět univerzální proxy server je overkill. A technicky vzato, ten nginx plugin jde univerzálně použít, kdyby na to přišlo.

Re:HTTPS certifikát v lokální síti
« Odpověď #19 kdy: 04. 04. 2024, 08:51:56 »
Je zbytečné (a nebezpečné) rozlišovat, kdy je TLS zbytečné a kdy ne. I v té domácí LAN můžete mít nějakou ne dobře zabezpečenou WiFi, můžete tam mít třeba kamery, jejichž obraz by sousedi zrovna nemuseli vidět atd. Pro používání prohlížečů je zdaleka nejbezpečnější, když HTTPS bude prostě všude – protože každá výjimka znamená potenciální skulinu pro útočníka.
Doufám, že jednou bude standardem, že doménu a vydání certifikátů bude zprostředkovávat domácí router, případně zajistí reverzní proxy pro zařízení, která by měla s HTTPS problém.
Jinak samozřejmě je to řešitelné kterýmkoli serverem, který umí dělat reverzní proxy – třeba i Apache. Ale Apache někomu připadal jako moc velký moloch, tak vznikl lehčí nginx, ale i ten pak někomu připadal pořád jako zbytečně složitá věc, tak vzniklo mimo jiné Caddy.


Re:HTTPS certifikát v lokální síti
« Odpověď #20 kdy: 05. 04. 2024, 12:26:30 »
CA mkcert som si pridal rucne do G-chromu/chromiu a firefoxu, cize je to vyriesene. Zaujmalo by ma ako by som to pridal do systemu.
V macOS a Windows se root CA přidá kliknutím na certifikát a jeho instalací. V linuxu nakopírováním certifikátu do správného adresáře a spuštěním aplikace, která jej přidá do databáze. Aplikace závisí na distribuci. Podrobněji to máte popsané na Githubu mkcert.

Re:HTTPS certifikát v lokální síti
« Odpověď #21 kdy: 05. 04. 2024, 13:13:09 »
Možných útoků na HTTP je v domácí síti více, zvlášť u zařízení, které se připojuje do více sítí (mobily, notebooky, …). Například lze otrávit cache. A bez HTTPS se také lépe dělá DNS rebinding attack (trik, jak si z webového prohlížeče udělat proxy do vnitřní sítě nebo dokonce na localhost), ačkoli HTTPS by zde neměla být primární ochrana…
V neposlední řadě WPA2 nemá forward secrecy (WPA3 už snad jo), takže pokud časem unikne heslo k Wi-Fi, lze jej (za určitých celkem splnitelných podmínek) použít k přečtení dříve zachycené komunikace.
Jo, tyto útoky lze typicky nějak řešit, ale:

1. Seznam nejspíš nebude kompletní.
2. I pokud se omezíme na to, co jsem zde během chvilky vytáhl z hlavy, nejspíš bude jednodušší to HTTPS… 😊