Konec ročních certifikátů: Jak na automatizaci TLS certifikátů pomocí DNS
Google i Apple neúprosně tlačí na zkracování platnosti SSL/TLS certifikátů. Z původních několika let jsme se dostali na rok a trend jasně směřuje k platnosti pouhých 90, či dokonce 47 dnů. V takovém tempu se manuální obnova stává pro správce serverů noční můrou.
Jedinou udržitelnou cestou je robustní automatizace. V tomto článku si ukážeme, jak nastavit automatickou obnovu certifikátů pomocí protokolu ACME a DNS validace u domén registrovaných u CZECHIA.COM, kteří (nejen) pro tento účel nabízí veřejné REST API.
Proč chtít DNS validaci (DNS-01 challenge)? Většina správců zná ověření přes HTTP, kdy se na web nahrává ověřovací soubor. Validace přes DNS záznamy je ale v mnoha ohledech lepší:
- Wildcard certifikáty: Je to jediný způsob, jak získat Let’s Encrypt certifikát pro *.vasedomena.cz.
- Bezpečnost a intranet: Nemusíte otevírat port 80 do internetu. Certifikát získáte i pro server schovaný za firewallem nebo v interní síti.
- Nezávislost na platformě: Nezáleží na tom, jaký webserver používáte (nebo jestli vůbec nějaký máte).
Nástroje a API Propojení mezi certifikační autoritou a DNS providerem zajišťuje REST API. CZECHIA.COM nabízí dokumentaci ve standardu OpenAPI (Swagger), díky čemuž vznikly pluginy pro tři nejpoužívanější ACME klienty.
Jak na to: Praktická ukázka
- Certbot (Standard pro Linux): Certbot je nejrozšířenější klient. Pro nasazení stačí nainstalovat oficiální plugin, vygenerovat si API klíč v administraci CZECHIA a spustit příkaz. Plugin se postará o dočasné vytvoření TXT záznamu, počká na propagaci a po ověření záznam zase smaže.
- acme.sh (Lehký shell klient): Pokud nechcete na serveru závislosti na Pythonu, je ideální volbou acme.sh. I zde existuje podpora pro CZECHIA API (jako součást oficiálního projektu), která umožňuje získat certifikát jedním příkazem: ./acme.sh –issue –dns dns_czechia -d domena.cz -d *.domena.cz. Cílem acme.sh je certifikát získat (vydat) a uložit jako soubor, o instalaci se nestará; můžete si ji řešit vlastními skripty (tzv. deploy hooky).
-
LEGO (Go klient, vhodný pro automatizaci): LEGO je populární ACME klient napsaný v Go, často používaný v kontejnerech a CI/CD (nemá závislosti na Pythonu). S pluginem pro CZECHIA DNS zvládnete DNS-01 validaci stejně jednoduše: LEGO si přes API dočasně vytvoří potřebný TXT záznam, počká na propagaci a po úspěšném ověření ho zase odstraní.
- Win-acme (pro Windows Server): Osvědčený ACME klient pro svět Windows. funguje v PowerShellu a skript podporuje více domén (SAN). Plugin CZECHIA najdete zde.
-
simple-acme (pro Windows Server): Z dostupných ACME klientů doporučujeme pro prostředí Windows využít simple-acme. Jedná se o přímého a aktivně vyvíjeného nástupce dříve populárního, avšak autorem opuštěného projektu win-acme. Tento klient mimořádně usnadňuje nasazení certifikátů na Windows serverech a ve spojení s pluginem CZECHIA zajišťuje bezproblémovou DNS validaci – dočasně vytvoří potřebný TXT záznam, počká na propagaci a po úspěšném ověření ho zase automaticky odstraní.
Komerční certifikáty přes ACME? S EAB žádný problém
Může se zdát, že ACME klienti slouží výhradně pro bezplatné Let’s Encrypt certifikáty, protože s nimi komunikují ve výchozím nastavení. Protokol ACME ale umí mnohem více.
Pokud chcete automatizovat vydávání placených důvěryhodných certifikátů (např. od DigiCertu), stačí využít tzv. EAB (External Account Binding). Jedná se o nadstavbu, díky které propojíte ACME klienta s vaším komerčním účtem. Své EAB credentials si jednoduše vygenerujete v účtu na SSLmarketu a rázem můžete přes ACME plně automatizovat vydávání nejen základních DV, ale i prestižních OV a EV certifikátů.
S nástupem krátkých expirací certifikátů končí éra „kalendářových upomínek“. S využitím REST API je nastavení automatizace otázkou pár minut. Výsledkem je server, který se o svou bezpečnost stará sám – ať už certifikát platí rok, nebo měsíc.








