Využijte automatizaci pomocí ACME i na Windows serveru

9. 2. 2022 | Jindřich Zechmeister

ACME protokol je moderní automatizační nástroj, který se používá zejména na linuxových serverech, zatímco v ekosystémech Windows tak rozšířen není. Chtěli byste certifikáty na vašem Windows serveru automatizovat, ale nevíte jak? Ukážeme vám, jak snadno můžete ACME na Windows Serveru využít - včetně nastavení certifikátu a automatického prodlužování.

K čemu slouží ACME

Na úvod si krátce připomeňme k čemu slouží ACME protokol a v čem je jeho neocenitelná výhoda. Wikipedia ho definuje jako komunikační protokol pro automatizaci interakcí mezi certifikačními úřady a webovými servery jejich uživatelů, který umožňuje automatické nasazení infrastruktury veřejných klíčů.

Pomocí ACME můžete snadno požádat a získat TLS certifikát od důvěryhodné CA. O celý proces se stará ACME bot, který většinou dokáže nový certifikát i nasadit (nainstalovat) na webový server. V prostředí linuxových serverů je použití velice rozšířené, ale naopak v prostředí Windows stále mnoho administrátorů nezná ACME bota, který by dokázal certifikát i nainstalovat.

Prerekvizity pro využití ACME certifikátu

Pro automatizaci získání a nasazení certifikátu s využitím protokolu ACME je potřeba splnit několik málo předpokladů.

Jelikož je vydání certifikátu po jeho zažádání přes protokol ACME automatické, je logicky potřeba provést ověření žadatele ještě před samotnou žádostí o certifikát. K tomu se přidají i předem ověřené domény.

Stačí, abyste nám dali vědět, že máte o ACME zájem. Pak naše podpora zajistí ověření vaší organizace u DigiCertu a též provede ověření domén, které chcete zabezpečit. Posledním krokem je vygenerování přístupů k ACME, které jsou pro každý produkt unikátní. Pokud tedy budete chtít vydávat například Thawte OV a Thawte EV certifikát, budete mít pro každý z nich unikátní ACME klíč, kterým v klientovi přesně určíte, který certifikát se má pro danou doménu vydat.

S obchodníky SSLmarketu si pak domluvíte formu účtování - nejlépe pomocí předem nabitého kreditu. Možná je například i jednorázová faktura na určitý počet certifikátů.

Volba správného klienta a jeho nastavení

ACME klientů je k dispozici velké množství a nejrozšířenějším je Certbot. S jeho volbou určitě neuděláte chybu. Drtivá většina dostupných klientů je však určena pro linuxové servery či jiné podobné platformy, navíc prakticky žádný nemá GUI. ACME klienti se typicky ovládají přes rozhraní příkazové řádky.

Pro Windows a Windows Server je k dispozici řada možností, ale často se setkáte s tím, že klient neumí dotáhnout proces získání a instalace do konce. Nejpalčivější je u ACME klientů pro Windows nemožnost nasadit (nabindovat) nový certifikát v IIS. Někteří klienti nabízí i grafické rozhraní (GUI), ale není zřejmé, zdali fungují dobře a hlavně zdali budou fungovat s ACME implementací DigiCertu.

My jsme se rozhodli najít a doporučit konkrétní, plně funkčí řešení a klienta, který umí certifikát nejen od DigiCertu získat, ale také nainstalovat. Je jím klient win-acme, kterého si můžete stáhnout z oficiálního webu.

Jak win-acme nastavit a používat

Jak bylo zmíněno výše, pro autentizaci vůči DigiCertu potřebuje klient ACME klíč, který vám dodáme a vy jej nastavíte v klientovi win-acme.

Stáhněte klienta z oficiálního webu a rozbalte ho. Zatím program nespouštějte a místo toho si otevřete soubor setting.json. V tomto textovém souboru uvidíte v oddílu "Acme" tři ACME url, všechny změňte na "https://acme.digicert.com/v2/acme/directory/". Jinak nebude program vědět, že se má bavit s DigiCert ACME.

Až po těchto úpravách můžete spustit soubor wacs.exe. Zřejmě uvidíte varování Smartscreenu, protože aplikace pohříchu není digitálně podepsaná. To musíte obejít.

Nabídka win-acme po spuštění
Nabídka win-acme po spuštění

Po spuštění aplikace nejděte hned vydávat certifikát, je potřeba nejprve nastavit ACME credentials. Napřed zvolte možnost O (More options) a pak A (Acme details). Program vás vyzve k zadání Key Identifier a následně Key v Base64 - oba údaje dostanete od nás jako KID a HMAC key (takto pojmenované). Zadejte je v pořadí kratší a pak delší údaj. Po zadání se vraťte do hlavního menu.

Přistupte k vydání certifikátu. Z hlavního menu vyberte možnost N a nechte se provést průvodcem. Ten při získávání nového certifikátu načítá údaje o Sites v IIS a nabízí vám je k výběru. Vy jen zvolíte, kterou doménu chcete použít jako CN certifikátu.

Jako první se vás zeptá na website, kterou má proskenovat, a potom získá z IIS hostname. Dialogy se potvrzují pomocí odpovědi y(es) či n(o) a výchozí možnost je vždy označena barevně. V následném dialogu vám win-acme bot ukáže bindingy, které našel u daného hostname. Jedná se tedy o seznam domén a k nim nabindovaných certifikátů. Opět si vyberete správnou možnost, nebo můžete potvrdit výchozí volbu (typicky pokud máte v IIS jen jeden web).

Následně se win-acme spojí s DigiCertem přes ACME protokol a pokusí se získat nový TLS certifikát. Připomeňme, že jaký certifikát to bude a pro koho bude vydán určují ACME klíče, které vám byly vygenerované z naší strany.

Po vydání certifikátu, které typicky proběhne do několika sekund, se nový certifikát nastaví k dříve vybrané doméně v IIS. Nemusíte tedy certifikát pracně importovat a upravovat Bindings. Níže vidíte potvrzení úspěšného vydání certifikátu a potvrzení, že byl v IIS přirazen k vybrané doméně. V tuto chvíli je aktivní a vše je hotovo!

Potvrzení úspěšného vydání a nabindování certifikátu
Potvrzení úspěšného vydání a nabindování certifikátu

O prodlužování certifikátu nemusíte mít obavy. Klient win-acme založí na daném serveru/stanici událost, která se denně opakuje. Každý den se bude spouštět a prodlužovat případné končící certifikáty.

Závěr

ACME protokol je mocný pomocník umožňující automatizaci životního cyklu certifikátů. Neváhejte ho nasadit, protože vám může ušetřit stovky hodin ročně dříve strávených ruční správou TLS certifikátů. Pro získání ACME URL kontaktujte naši podporu SSLmarketu.


Ing. Jindřich Zechmeister
Specialista pro bezpečnostní SSL certifikáty
DigiCert TLS/SSL Professional
e-mail: jindrich.zechmeister(at)zoner.cz