Využite automatizáciu pomocou ACME aj na Windows serveri.

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í.

Na čo slúži ACME

Na úvod si krátko pripomeňme, na čo slúži ACME protokol a v čom je jeho neoceniteľná výhoda. Wikipedia ho definuje ako komunikačný protokol na automatizáciu interakcií medzi certifikačnými úradmi a webovými servermi ich používateľov, ktorý umožňuje automatické nasadenie infraštruktúry verejných kľúčov.

Pomocou ACME môžete ľahko požiadať a získať TLS certifikát od dôveryhodnej CA. O celý proces sa stará ACME bot, ktorý väčšinou dokáže nový certifikát aj nasadiť (nainštalovať) na webový server. V prostredí linuxových serverov je použitie veľmi rozšírené, ale naopak v prostredí Windows stále mnoho administrátorov nepozná ACME bota, ktorý by dokázal certifikát aj nainštalovať.

Prerekvizity pre využitie ACME certifikátu

Pre automatizáciu získania a nasadenia certifikátu s využitím protokolu ACME je potrebné splniť niekoľko málo predpokladov.

Keďže je vydanie certifikátu po jeho zažiadaní cez protokol ACME automatické, je logicky potrebné vykonať overenie žiadateľa ešte pred samotnou žiadosťou o certifikát. K tomu sa pridajú aj vopred overené domény.

Stačí, aby ste nám dali vedieť, že máte o ACME záujem. Potom naša podpora zabezpečí overenie vašej organizácie u DigiCertu a tiež vykoná overenie domén, ktoré chcete zabezpečiť. Posledným krokom je vygenerovanie prístupov k ACME, ktoré sú pre každý produkt unikátne. Ak teda budete chcieť vydávať napríklad Thawte OV a Thawte EV certifikát, budete mať pre každý z nich unikátny ACME kľúč, ktorým v klientovi presne určíte, ktorý certifikát sa má pre danú doménu vydať.

S obchodníkmi SSLmarketu si potom dohodnete formu účtovania - najlepšie pomocou vopred nabitého kreditu. Možná je napríklad aj jednorazová faktúra na určitý počet certifikátov.

Voľba správneho klienta a jeho nastavenie

ACME klientov je k dispozícii veľké množstvo a najrozšírenejším je Certbot. S jeho voľbou určite neurobíte chybu. Drvivá väčšina dostupných klientov je však určená pre linuxové servery či iné podobné platformy, navyše prakticky žiadny nemá GUI. ACME klienti sa typicky ovládajú cez rozhranie príkazového riadku.

Pre Windows a Windows Server je k dispozícii rad možností, ale často sa stretnete s tým, že klient nevie dotiahnuť proces získania a inštalácie do konca. Najpálčivejšie je u ACME klientov pre Windows nemožnosť nasadiť (nabindovať) nový certifikát v IIS. Niektorí klienti ponúkajú aj grafické rozhranie (GUI), ale nie je zrejmé, či fungujú dobre a hlavne či budú fungovať s ACME implementáciou DigiCertu.

My sme sa rozhodli nájsť a odporučiť konkrétne, plne funkčné riešenie a klienta, ktorý vie certifikát nielen od DigiCertu získať, ale aj nainštalovať. Je ním klient win-acme, ktorého si môžete stiahnuť z oficiálnej webovej stránky.

Ako win-acme nastaviť a používať

Ako bolo spomenuté vyššie, pre autentizáciu voči DigiCertu potrebuje klient ACME kľúč, ktorý vám dodáme a vy ho nastavíte v klientovi win-acme.

Stiahnite klienta z oficiálnej webovej stránky a rozbaľte ho. Zatiaľ program nespúšťajte a namiesto toho si otvorte súbor setting.json. V tomto textovom súbore uvidíte v oddiele "Acme" tri ACME url, všetky zmeňte na "https://acme.digicert.com/v2/acme/directory/". Inak nebude program vedieť, že sa má baviť s DigiCert ACME.

Až po týchto úpravách môžete spustiť súbor wacs.exe. Pravdepodobne uvidíte varovanie Smartscreenu, pretože aplikácia bohužiaľ nie je digitálne podpísaná. To musíte obísť.

Ponuka win-acme po spustení
Ponuka win-acme po spustení

Po spustení aplikácie nechoďte hneď vydávať certifikát, je potrebné najprv nastaviť ACME credentials. Napred zvoľte možnosť O (More options) a potom A (Acme details). Program vás vyzve k zadaniu Key Identifier a následne Key v Base64 - oba údaje dostanete od nás ako KID a HMAC key (takto pomenované). Zadajte ich v poradí kratší a potom dlhší údaj. Po zadaní sa vráťte do hlavného menu.

Pristúpte k vydaniu certifikátu. Z hlavného menu vyberte možnosť N a nechajte sa previesť sprievodcom. Ten pri získavaní nového certifikátu načítava údaje o Sites v IIS a ponúka vám ich k výberu. Vy len zvolíte, ktorú doménu chcete použiť ako CN certifikátu.

Ako prvé sa vás spýta na website, ktorú má preskenovať, a potom získa z IIS hostname. Dialógy sa potvrdzujú pomocou odpovede y(es) či n(o) a predvolená možnosť je vždy označená farebne. V následnom dialógu vám win-acme bot ukáže bindingy, ktoré našiel u daného hostname. Jedná sa teda o zoznam domén a k nim nabindovaných certifikátov. Opäť si vyberiete správnu možnosť, alebo môžete potvrdiť predvolenú voľbu (typicky ak máte v IIS len jeden web).

Následne sa win-acme spojí s DigiCertom cez ACME protokol a pokúsi sa získať nový TLS certifikát. Pripomeňme, že aký certifikát to bude a pre koho bude vydaný určujú ACME kľúče, ktoré vám boli vygenerované z našej strany.

Po vydaní certifikátu, ktoré typicky prebehne do niekoľkých sekúnd, sa nový certifikát nastaví k skôr vybranej doméne v IIS. Nemusíte teda certifikát prácne importovať a upravovať Bindings. Nižšie vidíte potvrdenie úspešného vydania certifikátu a potvrdenie, že bol v IIS priradený k vybranej doméne. V túto chvíľu je aktívny a všetko je hotové!

Potvrdenie úspešného vydania a nabindovania certifikátu
Potvrdenie úspešného vydania a nabindovania certifikátu

O predlžovaní certifikátu nemusíte mať obavy. Klient win-acme založí na danom serveri/stanici udalosť, ktorá sa denne opakuje. Každý deň sa bude spúšťať a predlžovať prípadné končiace certifikáty.

Záver

ACME protokol je mocný pomocník umožňujúci automatizáciu životného cyklu certifikátov. Neváhajte ho nasadiť, pretože vám môže ušetriť stovky hodín ročne predtým strávených ručnými správou TLS certifikátov. Pre získanie ACME URL kontaktujte našu podporu SSLmarketu.