Serverový certifikát - CESNET TCS (ACME automatizace)

Z Helpdesk
Serverový certifikát – ACME automatizace přes CESNET TCS
Doporučená metoda pro všechny správce serverů na ZČU: jednou požádáte o automatizaci, po schválení získáte autorizační kódy a nástroj certbot pak certifikáty vydává i obnovuje zcela automaticky.
Certifikační autorita HARICA (v rámci služby CESNET TCS) – certifikát s ověřením organizace (OV)
Cena Zdarma – v rámci členství ZČU ve sdružení CESNET
Pro koho Správci libovolných serverů s DNS jmény, k jejichž doménám má ZČU oprávnění
Automatická obnova Ano – certbot obnovuje certifikát s předstihem před koncem platnosti
Ověření domény Pro jména schválená v žádosti již proběhlo – ACME challenge se nespouští, volný port 80 ani otevřený firewall nejsou potřeba
Oficiální dokumentace pki.cesnet.cz – Automatizované získání certifikátu

Žádost o automatizaci je ověřena pouze poprvé. Na základě schválení získáte autorizační klíč (tzv. EAB kódy), pomocí kterého ACME klient na vašem serveru sám generuje nové certifikáty. Klíč platí, dokud je využíván a dokud jej neodvoláte vy nebo správce TCS na ZČU.

1. Podání žádosti o automatizaci

Na stránce tcs.cesnet.cz/acmeform pečlivě vyplňte formulář:

  • do pole DNS jméno serveru (do pole CN předmětu) uveďte hlavní DNS jméno serveru,
  • případná další (alternativní) jména uveďte do pole DNS jména serveru (oddělená mezerou).

V současné době lze požádat pouze o automatizaci běžného certifikátu s ověřením organizace (certifikáty e-science ani EV vydat nelze). Po kliknutí na tlačítko „Pokračovat" je žádost odeslána ke schválení.

2. Schválení žádosti

Žádost posoudí pověření správci TCS za ZČU, kteří ověří vaše oprávnění žádat o certifikát pro příslušná doménová jména. O schválení či zamítnutí budete informováni e-mailem. Vyřízení může trvat od několika minut po několik dnů.

3. Vyzvednutí autorizačních kódů

Po schválení najdete své kódy v přehledu klíčů pro automatizaci. Pro nastavení klienta budete potřebovat tři hodnoty:

  • ACME URL klíče (adresa serveru certifikační autority),
  • Id klíče (EAB KID),
  • HMAC klíče (EAB HMAC key).

Tyto hodnoty jsou důvěrné – kdo je zná, může vydávat certifikáty vaším jménem. Neukládejte je do repozitářů ani je neposílejte e-mailem.

4. Instalace nástroje certbot

  • Debian 13 (Trixie) a novější: certbot 4.0.0 z distribučních balíčků funguje se službou TCS přímo:
apt install certbot
  • Starší distribuce: certbot z distribučních balíčků pravděpodobně fungovat nebude. Odinstalujte jej (apt remove certbot, dnf remove certbot apod.) a nainstalujte aktuální verzi přes snap:
apt install snapd
snap install core; snap refresh core
snap install --classic certbot
ln -s /snap/bin/certbot /usr/bin/certbot

Alternativně lze použít i klienta uacme (viz dokumentace CESNET).

5. První vydání certifikátu

Hodnoty v úhlových závorkách doplňte z přehledu klíčů:

certbot certonly \
  --standalone \
  --non-interactive \
  --agree-tos \
  --server <ACME URL klíče> \
  --eab-kid <Id klíče> \
  --eab-hmac-key <HMAC klíče> \
  --cert-name example.zcu.cz \
  -d example.zcu.cz \
  -m vas-email@zcu.cz \
  --deploy-hook "systemctl reload apache2"

Poznámky:

  • Autentizátor je nutné zadat vždy, ale u jmen schválených v žádosti se ACME challenge nespouští – --standalone proto nepotřebuje volný port 80 a běžící webový server nemusíte zastavovat. Dočasný HTTP server by Certbot spustil jen u jména bez platného ověření držby domény; tehdy použijte --webroot -w /cesta/k/document-rootu.
  • Parametr --deploy-hook upravte podle služby, která certifikát používá (např. systemctl reload nginx, systemctl restart postfix). Uloží se do obnovovací konfigurace a spustí se po každé úspěšné obnově.
  • Více jmen zadáte opakováním parametru -d, případně -d jmeno1,jmeno2. Jiná než v žádosti schválená DNS jména způsobí chybu vydání.
  • K chybě může občas dojít i při správně zadaných údajích – další spuštění už bývá úspěšné.

6. Kde certifikát najdete

V cestách se objevuje slovo letsencrypt – s touto autoritou nemá TCS nic společného, certbot byl pro ni pouze původně vytvořen.

Soubor Obsah
/etc/letsencrypt/live/example.zcu.cz/cert.pem certifikát serveru
/etc/letsencrypt/live/example.zcu.cz/privkey.pem privátní klíč
/etc/letsencrypt/live/example.zcu.cz/chain.pem řetěz mezilehlých CA
/etc/letsencrypt/live/example.zcu.cz/fullchain.pem certifikát včetně řetězu (pro většinu služeb)

Na tyto soubory se odkazujte v konfiguraci svých služeb (Apache, nginx, Postfix, Dovecot, ...). Například pro Apache:

SSLCertificateFile    /etc/letsencrypt/live/example.zcu.cz/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.zcu.cz/privkey.pem

7. Automatická obnova

Certifikát je od této chvíle obnovován automaticky – certbot jej obnoví s předstihem před koncem platnosti (systemd timer certbot.timer, ověříte příkazem systemctl list-timers). Díky deploy hooku z kroku 5 si služba nový certifikát po obnově sama načte.

Obnovu si můžete nanečisto vyzkoušet:

certbot renew --dry-run

Ruční obnovu vynutíte příkazem:

certbot renew --force-renewal

Řešení potíží

  • Protokol chyb: /var/log/letsencrypt/letsencrypt.log
  • Chyba vydání u jmen, která nebyla schválena v žádosti – požádejte o automatizaci znovu se správným seznamem jmen.
  • Port 80 a firewall řešte jen tehdy, když Certbot hlásí neúspěšnou HTTP-01 validaci. U jmen schválených v žádosti k validaci nedochází; pokud k ní dojde, dané jméno nemá platné ověření držby domény.
  • S čímkoli dalším pomůže aaa-req@service.zcu.cz.

Související stránky