Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
| Následující verze | Předchozí verze | ||
| it:iot:certifikat-lets-encrypt-uzavrena-sit [2024/12/22 12:47] – vytvořeno Petr Nosek | it:iot:certifikat-lets-encrypt-uzavrena-sit [2024/12/22 13:35] (aktuální) – Petr Nosek | ||
|---|---|---|---|
| Řádek 1: | Řádek 1: | ||
| ====== Certifikáty Let's Encrypt v uzavřené síti ====== | ====== Certifikáty Let's Encrypt v uzavřené síti ====== | ||
| + | ===== Vysvětlení různých typů challenge v Let's Encrypt ===== | ||
| + | |||
| + | Let's Encrypt umožňuje ověření domény pomocí několika metod, známých jako **challenge**. Každý typ challenge má své specifické požadavky a je vhodný pro různé situace: | ||
| + | |||
| + | * **HTTP-01 Challenge** | ||
| + | * Ověření probíhá pomocí souboru umístěného na HTTP serveru. | ||
| + | * Let's Encrypt pošle požadavek na konkrétní URL (např. `http:// | ||
| + | * **Použití: | ||
| + | * **Nevýhoda: | ||
| + | |||
| + | * **DNS-01 Challenge** | ||
| + | * Ověření se provádí vytvořením speciálního DNS TXT záznamu (např. `_acme-challenge.example.com`). | ||
| + | * Let's Encrypt ověří existenci tohoto záznamu v DNS. | ||
| + | * **Použití: | ||
| + | * **Výhoda: | ||
| + | |||
| + | * **TLS-ALPN-01 Challenge** | ||
| + | * Ověření probíhá pomocí speciálního TLS handshake. | ||
| + | * Vyžaduje specifickou konfiguraci TLS serveru. | ||
| + | * **Použití: | ||
| + | |||
| + | ===== Princip DNS-01 Challenge ===== | ||
| + | |||
| + | DNS-01 challenge je metoda ověření, která je obzvláště užitečná v případech, | ||
| + | |||
| + | * **Vytvoření TXT záznamu**: | ||
| + | Let's Encrypt poskytne specifický textový záznam (token), který je potřeba přidat do DNS jako `_acme-challenge.< | ||
| + | |||
| + | * **Ověření Let's Encrypt**: | ||
| + | Let's Encrypt zkontroluje DNS záznamy pro vaši doménu. Pokud záznam existuje a odpovídá očekávané hodnotě, ověření proběhne úspěšně. | ||
| + | |||
| + | * **Vystavení certifikátu**: | ||
| + | Po úspěšném ověření Let's Encrypt vygeneruje certifikát pro vaši doménu. | ||
| + | |||
| + | ===== Přínos DNS-01 Challenge v uzavřené síti ===== | ||
| + | |||
| + | V prostředí uzavřené sítě, kde: | ||
| + | - Doména směřuje na lokální IP adresy. | ||
| + | - Veřejný HTTP server není dostupný. | ||
| + | - Je potřeba zajistit šifrovanou komunikaci i pro subdomény. | ||
| + | |||
| + | DNS-01 challenge umožňuje: | ||
| + | |||
| + | * Generovat certifikáty pro subdomény (`*.example.com`). | ||
| + | * Automatizovat proces ověření pomocí API DNS poskytovatele (např. Cloudflare). | ||
| + | * Minimalizovat nutnost změn v lokální síti (pouze úprava DNS záznamů na straně poskytovatele). | ||
| + | |||
| + | ==== Příklad s doménou nosekpetr.cz ==== | ||
| + | |||
| + | Uvažujme, že vlastníte doménu `nosekpetr.cz`, | ||
| + | |||
| + | - Subdoména `teslamate.nosekpetr.cz` směruje na lokální IP adresu pomocí souboru `hosts` na klientech v síti. | ||
| + | - Pro ověření vlastnictví domény vytvoří Traefik pomocí DNS-01 challenge TXT záznam `_acme-challenge.teslamate.nosekpetr.cz` na Cloudflare. | ||
| + | - Let's Encrypt ověří záznam a vydá certifikát. | ||
| + | - Certifikát je poté použit pro šifrovanou komunikaci na subdoméně v lokální síti. | ||
| + | |||
| + | Tento přístup umožňuje provoz šifrovaných služeb v lokální síti bez nutnosti, aby byl server přímo dostupný z internetu. | ||
| + | |||
| + | |||
| + | ===== Převod domény ke Cloudflare ===== | ||
| + | |||
| + | <adm warning> | ||
| + | |||
| + | Rozhodl jsem se převést správu DNS záznamů na Cloudflare, protože Cloudflare nabízí API, které umožňuje automatizovat proces ověření pomocí DNS-01 challenge. Tento přístup eliminuje nutnost manuální správy TXT záznamů při každém ověření certifikátu. | ||
| + | |||
| + | Mou doménu `nosekpetr.cz` mám registrovanou u českého registrátora, | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Proces zahrnoval založení účtu na Cloudflare a využití funkce pro přidání existující domény. Cloudflare mi následně poskytl nové nameservery, | ||
| + | |||
| + | |||
| + | Po nastavení nameserverů jsem vyčkal 24 hodin, aby se změny plně projevily. Poté jsem mohl začít editovat DNS záznamy přímo v rozhraní Cloudflare. | ||
| + | |||
| + | |||
| + | |||
| + | ==== Získání API klíče od Cloudflare ==== | ||
| + | |||
| + | Inspiroval jsem se v [[http:// | ||
| + | |||
| + | {{youtube> | ||
| + | |||
| + | Nejprve je potřeba získat autentizační údaj, který umožní pracovat s konkrétní doménou (zónou). Cloudflare nabízí dva typy takových údajů: | ||
| + | |||
| + | * **API keys** – globální klíče, které lze použít ke všem operacím v rámci celého účtu na Cloudflare. | ||
| + | * **API tokens** – specifické tokeny s omezeným přístupem, | ||
| + | |||
| + | Pro naše účely zvolíme **tokeny**, protože nabízejí vyšší úroveň bezpečnosti. Tokeny umožňují přesně definovat, k jakým datům a operacím mají přístup, čímž výrazně snižují riziko zneužití. | ||
| + | |||
| + | {{: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | |||
| + | Oproti návodu už nebudu pracovat s Certbotem, ale certifikáty obsloužím v [[it: | ||