Toto je starší verze dokumentu!
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://example.com/.well-known/acme-challenge/`).
- Použití: Jednoduché nastavení pro veřejné servery, které mohou přijímat požadavky z internetu.
- Nevýhoda: Nevhodné pro uzavřené sítě nebo pokud není dostupný veřejný HTTP server.
- 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í: Ideální pro situace, kdy není možné použít HTTP-01 challenge, např. uzavřené sítě nebo dynamické webové aplikace.
- Výhoda: Umožňuje generovat wildcard certifikáty (např. `*.example.com`).
- TLS-ALPN-01 Challenge
- Ověření probíhá pomocí speciálního TLS handshake.
- Vyžaduje specifickou konfiguraci TLS serveru.
- Použití: Vhodné pro některé specifické aplikace, ale méně běžné než HTTP-01 nebo DNS-01.
Princip DNS-01 Challenge
DNS-01 challenge je metoda ověření, která je obzvláště užitečná v případech, kdy server není přímo dostupný z internetu nebo je umístěn v uzavřené síti. Funguje následujícím způsobem:
- 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.<doména>`.
- 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`, která je hostována na Cloudflare, a chcete provozovat subdoménu `teslamate.nosekpetr.cz` v uzavřené lokální síti.
- 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, který je uložen v Traefiku.
- 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.