Provoz po HTTPS v produkci

Re:Provoz po HTTPS v produkci
« Odpověď #15 kdy: 14. 12. 2022, 16:22:21 »
Co je dnes "mainstream" sposob nasadenia https na webove aplikacie?

Moj mainstream je AWS. Webove aplikacie su za AWS ALB, ktory ma TLS cert vydany AWS z ACM. A to je vsetko. TLS cert je pre mna iba manazovana AWS sluzba (vratane obnovy). Mimochodom, TLS certifikaty vydane AWS su zdarma. Takze nemam ziadne tvoje problemy.

Dalsie riesenie u teba, by som videl v nasadeni aplikacii ktore si vedia reloadnut TLS bez restartu samotnej aplikacie a ich certy budes manazovat svojim oblubenym nastrojom (puppet, ansible, ...) centralne.


vpn22

Re:Provoz po HTTPS v produkci
« Odpověď #16 kdy: 14. 12. 2022, 17:31:01 »

zpravidla nenechávám si vydávat cert koncovým zařízením (nechci, aby za to mělo odpovědnost). Takže vydání přes DNS na extra zařízení, uložení do šifrované db (např. hasicorp vault, ale stačí klidně i gpg šifrování) a distribuce na daná zařízení. Pokud jde o routery, tak využívám buď jejich http api, mngm rozhraní nebo seriový port a cert jim tam nakopíruji, zpravidla se vždy nějaká cesta najde. Držím se ale pravidla, že pouze zařízení, které jsou určena pro veřejnou komunikaci mají veřejný certifikát, ostatní interní.

Co vás vede k tomu, že koncová zařízení by neměla řešit certifikáty pro sebe? Podle mě by privátní klíč pokud možno neměl opustit koncové zařízení.

Proč by zařízení přístupná pouze z interní sítě nemohla mít LE certifikát?


Ta reverzní proxy samozřejmě může vystavovat certifikáty od LE nebo jiného poskytovatele používajícího ACME standard. Třeba Caddy server takhle funguje a zprovoznění znamená stažení binárky a napsání asi 1 řádku konfigurace.

Nerozumím. Co bude reverzní proxy vystavovat a komu?

Re:Provoz po HTTPS v produkci
« Odpověď #17 kdy: 14. 12. 2022, 17:52:57 »
Nerozumím. Co bude reverzní proxy vystavovat a komu?
Reverzní proxy nechá třeba u LE nebo ZeroSSL vystavit certifikát třeba na tiskarna.example.com, bude terminovat HTTPS provoz pro tuhle adresu a bude ho přeposílat na skutečnou tiskárnu protokolem HTTP nebo HTTPS se selfsigned certifikátem.

Třeba Caddy umí i zprostředkovat vydání certifikátu pro jiné zařízení (tj. funguje i jako ACME server), ale to v tomto případě není potřeba, protože byla řeč o situaci, kdy to zařízení neumí ACME. Nevíc v případě toho zprostředkování vydání certifikátu by nebyla potřeba reverzní proxy, protože by prohlížeč komunikoval přímo s cílovým zařízením.

Re:Provoz po HTTPS v produkci
« Odpověď #18 kdy: 14. 12. 2022, 18:08:38 »
Budu stručný, třeba někomu pomůže https://nginxproxymanager.com/
Řeší takové ty základní věci ohledně reverzní proxy na NGINX, ale s jednoduchým web rozhraním a s podporu Lets Encrypt.

vpn22

Re:Provoz po HTTPS v produkci
« Odpověď #19 kdy: 14. 12. 2022, 18:48:41 »
Reverzní proxy nechá třeba u LE nebo ZeroSSL vystavit certifikát třeba na tiskarna.example.com, bude terminovat HTTPS provoz pro tuhle adresu a bude ho přeposílat na skutečnou tiskárnu protokolem HTTP nebo HTTPS se selfsigned certifikátem.

Po třetí opakuji, že vlastní CA nechci.


_Jenda

  • *****
  • 1 638
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:Provoz po HTTPS v produkci
« Odpověď #20 kdy: 14. 12. 2022, 20:17:44 »
Reverzní proxy nechá třeba u LE nebo ZeroSSL vystavit certifikát třeba na tiskarna.example.com, bude terminovat HTTPS provoz pro tuhle adresu a bude ho přeposílat na skutečnou tiskárnu protokolem HTTP nebo HTTPS se selfsigned certifikátem.

Po třetí opakuji, že vlastní CA nechci.
Kde vidíš že ti Filip Jirsák navrhuje vlastní CA?

Jinak pokud zařízení umí HTTPS a jenom si neumí požádat o certifikát skrz LE, tak bych udělal tu reverzní proxy (nebo vlastně obyčejný web server kde se publikuje challenge) jenom směrem ven do LE za účelem získání certifikátu a ten bych pak na zařízení nahrál.

Další možnost je neřešit tenhle „split-horizon“ (zařízení dovnitř, LE agent směrem ven) a zkusit jejich DNS challenge -- stačí k tomu tiskarna.example.com přidat TXT/CNAME (nikdy jsem to ale osobně nedělal).

vpn22

Re:Provoz po HTTPS v produkci
« Odpověď #21 kdy: 14. 12. 2022, 21:04:44 »
Kde vidíš že ti Filip Jirsák navrhuje vlastní CA?

Radí mi, že mám pro spojení mezi proxy a tiskárnou použít self-signed.


Další možnost je neřešit tenhle „split-horizon“ (zařízení dovnitř, LE agent směrem ven) a zkusit jejich DNS challenge -- stačí k tomu tiskarna.example.com přidat TXT/CNAME (nikdy jsem to ale osobně nedělal).

Přesně to jsem si chtěl ujasnit, jestli mám správnou myšlenku.

Re:Provoz po HTTPS v produkci
« Odpověď #22 kdy: 15. 12. 2022, 07:10:09 »
Radí mi, že mám pro spojení mezi proxy a tiskárnou použít self-signed.

Self-signed certifikat je podpisany privatnym klucom samotneho certifikatu, pre jeho vytvorenie sa nepouzije ziadna CA.

vpn22

Re:Provoz po HTTPS v produkci
« Odpověď #23 kdy: 15. 12. 2022, 08:12:05 »
Že se pro vytvoření self-signed certifikátu nepoužije žádná CA jste někde četl nebo si to jen myslíte? Kdo tedy vytvořil kořenový (a tudíž i self-signed) certifikát ISRG Root X1, který používá Let's Encrypt?

Certifikační autorita je entita, která vystavuje certifikáty. Když si generuji vlastní certifikáty, tak jsem sám sobě certifikační autoritou a je úplně jedno, jestli pro koncová zařízení generuji self-signed certifikáty a nebo mám nějaký kořenový certifikátm, kterým pak teprve podepisuji CSR od koncových zařízení.

Nebo co podle vás znamená "vlastní CA"?

Re:Provoz po HTTPS v produkci
« Odpověď #24 kdy: 15. 12. 2022, 09:16:53 »
Že se pro vytvoření self-signed certifikátu nepoužije žádná CA jste někde četl nebo si to jen myslíte? Kdo tedy vytvořil kořenový (a tudíž i self-signed) certifikát ISRG Root X1, který používá Let's Encrypt?

Certifikační autorita je entita, která vystavuje certifikáty. Když si generuji vlastní certifikáty, tak jsem sám sobě certifikační autoritou a je úplně jedno, jestli pro koncová zařízení generuji self-signed certifikáty a nebo mám nějaký kořenový certifikátm, kterým pak teprve podepisuji CSR od koncových zařízení.

Nebo co podle vás znamená "vlastní CA"?
Self-signed je certifikát podepsaný „sám sebou“, podepisuje ho privátní klíč příslušný k veřejnému klíči, ke kterému je ten certifikát vystaven. Tj. nevystupuje tam žádná certifikační autorita, sám si vytvoříte dvojici klíčů a z ní si pak sám vytvoříte certifikát.

ISRG Root X1 vytvořil Let's Encrypt, ale ne z titulu toho, že jsou certifikační autorita. Vytvořili ho stejně, jako si ho můžete vytvořit vy, akorát pak řekli, že tenhle certifikát budou používat jako kořenový certifikát certifikační autority.

„Vlastní CA“ znamená, že si vytvoříte vlastní kořenový certifikát certifikační autority, z něj si volitelně vystavíte intermediate certifikáty CA a koncové certifikáty podepisujete certifikátem/certifikáty té certifikační autority. Tam, kde se má těm certifikátům důvěřovat, se pak zaregistrují ty certifikáty CA a nemusíte tam registrovat každý z těch self-signed certifikátů zvlášť.

Certifikační autorita není entita, která vystavuje certifikáty. Je to entita, která podepisuje certifikáty svým vlastním privátním klíčem. A self-signed certifikát není podepsán žádnou CA.

Re:Provoz po HTTPS v produkci
« Odpověď #25 kdy: 15. 12. 2022, 09:22:59 »
Další možnost je neřešit tenhle „split-horizon“ (zařízení dovnitř, LE agent směrem ven) a zkusit jejich DNS challenge -- stačí k tomu tiskarna.example.com přidat TXT/CNAME (nikdy jsem to ale osobně nedělal).
Už několikrát zmiňovaný Caddy umí žádat o certifikáty LE i s ověřením dns01. Umí se napojit na různé cloudové DNS providery a vytváří tam příslušný DNS záznam. (Pak se umí napojit na nějaké starší řešení, které podporuje spoustu dalších DNS providerů, a nebo si můžete implementovat vlastní napojení.) Takhle to máme pro jeden systém udělané – je vytvořena veřejná doména, hostovaná je u Cloudflare, certifikáty vystavuje Caddy přes dns01 a ten je dostupný jenom z interní sítě a servíruje statické weby a dělá reverzní proxy pro různé další aplikace. Aktuálně tam máme vše přes HTTPS, takže to jde vše přes Caddy a nebylo potřeba řešit delegování vydávání certifikátů pro jiné služby.

Re:Provoz po HTTPS v produkci
« Odpověď #26 kdy: 15. 12. 2022, 09:59:47 »
Jen pripomenu moznost fasovat a obnovovat certifikaty jednoduse s minimalni jednorazovou akci u sebe kvuli challenge.
https://www.root.cz/clanky/nastroj-acme-dns-pohodlne-ziskavani-certifikatu-pomoci-dns/

vpn22

Re:Provoz po HTTPS v produkci
« Odpověď #27 kdy: 15. 12. 2022, 10:26:16 »
Tak to je teda gól, certifikační autorita si podle pana Jirsáka nevydává svoje vlastní kořenové certifikáty. Kdybyste se alespoň na ten jejich kořenový certifikát podíval, tak byste tam viděl, že Issuer je Internet Security Research Group, tedy Let's Encrypt. Stejně tak to má třeba DigiCert (Issuer: CN=DigiCert Global Root CA, zde máte dokonce Root CA v názvu)...


„Vlastní CA“ znamená, že si vytvoříte vlastní kořenový certifikát certifikační autority, z něj si volitelně vystavíte intermediate certifikáty CA a koncové certifikáty podepisujete certifikátem/certifikáty té certifikační autority. Tam, kde se má těm certifikátům důvěřovat, se pak zaregistrují ty certifikáty CA a nemusíte tam registrovat každý z těch self-signed certifikátů zvlášť.

Upravujete si realitu, aby seděla k vašim argumentům.

Certifikační autorita není entita, která vystavuje certifikáty. Je to entita, která podepisuje certifikáty svým vlastním privátním klíčem. A self-signed certifikát není podepsán žádnou CA.

Když už, tak certifikační autorita nepodepisuje certifikáty, ale na základě CSR (Certificate Signing Request) nebo obdobné žádosti vystavuje NOVÝ certifikát. Z CSR si bere pouze veřejný klíč a zbytek obvykle ignoruje. Ostatní informace pak do certifikátu doplňuje dle sebe a dle toho, co uvedete v nějakém doplňkovém formuláři.


Re:Provoz po HTTPS v produkci
« Odpověď #28 kdy: 15. 12. 2022, 10:46:59 »
Filip má pravdu. Pointa je v tom, že CA existuje tam, kde existuje hierarchie veřejných klíčů, nazvaná PKI. Pokud žádnou takovou infrastrukturu neprovozujete, nemáte ani CA. V tom případě máte jen self-signed certifikát. Ten nemá žádného ověřitelného vydavatele, ale zase se snadno vyrobí jedním příkazem a v uzavřeném prostředí může stačit.

Re:Provoz po HTTPS v produkci
« Odpověď #29 kdy: 15. 12. 2022, 11:30:59 »
Že se pro vytvoření self-signed certifikátu nepoužije žádná CA jste někde četl nebo si to jen myslíte? Kdo tedy vytvořil kořenový (a tudíž i self-signed) certifikát ISRG Root X1, který používá Let's Encrypt?

Certifikační autorita je entita, která vystavuje certifikáty. Když si generuji vlastní certifikáty, tak jsem sám sobě certifikační autoritou a je úplně jedno, jestli pro koncová zařízení generuji self-signed certifikáty a nebo mám nějaký kořenový certifikátm, kterým pak teprve podepisuji CSR od koncových zařízení.

Nebo co podle vás znamená "vlastní CA"?

Ok, vytvorime si self signed certifikat:

Kód: [Vybrat]
openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -keyout example.key -out example.crt -subj "/CN=example.com" -addext "subjectAltName=DNS:example.com,DNS:www.example.net"

Aka CA sa podla vas pouzije pri vytvoreni?