46
Server / Re:vlastna CA
« kdy: 10. 08. 2023, 14:26:45 »Osobne vnimam ako jednu moznost, aby na intranete boli validne certifikaty i pre navstevy (nahodny clovek z ulice s android telefonom napriklad), vystavovat si certifikaty od lets encrypt-u na domenu ako napriklad chladnicka.mojaDomacnost.root.cz. Takyto certifikat by musel ziskavat verejne dostupny server s vhodnym SW a nasledne sa certifikat stiahne na domace NASko a nasadi do reverzneho proxy (predpokladam, ze chladnicka nebude podporovat nahranie certifikatu)...Ano, musíte mít vlastní doménu. Do internetu žádný server pro vystavení certifikátů vystavovat nemusíte, stačí DNS. Let's Encrypt má možnost ověřovat vydání certifikátu přes DNS, takže tu veřejnou část zajistí DNS server – a ten máte typicky k dispozici od toho, kde jste doménu koupil (a nebo jsou DNS hostingy zdarma). Ideální je, když ty DNS záznamy můžete spravovat přes nějaké všeobecně známé API, abyste to nemusel dělat ručně, ale mohl nechat celý proces získávání certifikátů dělat automatizovaně.
Nevyhoda je, ze clovek musi vlastnit nejaku domenu a raz za cas (validnost certifikatov lets encrypt), musi mat moznost spristupnit do Internetu server pre vydanie certifikatu pre "domace" sub-domeny.
Moja otazka je, nakolko je toto pouzivane riesenie a ake vyhody/nevyhody poskytuje oproti dvom uz spomenutym.
Já pro tohle používám Caddy server, který umí hned v základu získávat a obnovovat certifikáty protokolem ACME (tedy např. od Let's Encrypt). Jediné, co jsem musel udělat, je změnit výchozí konfiguraci, že se certifikáty nevalidují přes HTTP ale přes DNS. Jedním z DNS providerů, se kterými už umí Caddy komunikovat, je Cloudflare. Takže doména je hostovaná (zdarma) na Cloudflare, vytvořil jsem k ní API key, ten jsem zadal do konfigurace Caddy a ten se stará o výměnu klíčů. Caddy běží jen ve vnitřní síti a slouží jako reverzní proxy ke všem HTTPS službám.
Za mne je to vlastně jediné použitelné řešení. DNS záznamy jsou všude stejné, tj. nestane se mi, že by třeba mobil byl na mobilní síti, kde by si nakešoval odpověď „DNS záznam neexistuje“, pak přešel do vnitřní sítě, kde se ten DNS záznam teoreticky přeloží, ale s mobilem budu muset čekat, než vyprší cache. Používá se normální všeobecně důvěryhodná certifikační autorita. Což je velká výhoda proti vlastním CA. Ono nacpat svou vlastní CA do desktopového systému je celkem jednoduché. Pak zjistíte, že Firefox má vlastní seznam důvěryhodných CA. Dostat do do mobilního OS je trošku složitější, ale jde to. Pak k vám přijde někdo na návštěvu, a jemu už asi vlastní CA do mobilu instalovat nebudete. A pak třeba začnete řešit vývoje, Node.js nebo Docker, a zjistíte, že v Node.js byste vlastní autoritu musel přidávat na několik míst, a cpát vlastní autoritu do Docker image běžícího v jiném Docker image už vůbec nechcete. Chápu, že někde vlastní CA ještě dobíhají, ale určitě bych teď nastavěl vlastní CA pro běžný provoz uživatelské sítě – tam už jedině ta varianta s ACME protokolem a DNS validací při vydání certifikátu.