Serverový certifikát - CESNET TCS (ACME automatizace)
| 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 certbotapod.) 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í –
--standaloneproto 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-hookupravte 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
- Získání serverového certifikátu – rozcestník metod
- Serverový certifikát - CESNET TCS (jednorázová žádost) – ruční žádost bez automatizace
- Serverový certifikát - Let's Encrypt (Apache2 mod_md) – automatizace pro Apache2 bez ověření organizace