Datahorses

Expirácia certifikátu SSL/TLS: prečo pre ňu stále padajú weby

Autor: · · 3 min čítania

Keď certifikát TLS expiruje, prehliadače prestanú spojeniu dôverovať a namiesto vášho webu ukážu celostránkové varovanie. API, mobilné aplikácie a integrácie, ktoré sa pripájajú k tomu istému serveru, väčšinou rovno zlyhajú, pretože expirovaný certifikát odmietnu bez akejkoľvek otázky. Samotný web pritom môže bežať bez chyby, no návštevníci sa naň nedostanú.

Obnova je automatizovaná už roky, tak prečo sa to stále deje? Pretože automatizácia pokrýva len tie certifikáty, na ktoré pri jej nastavovaní niekto myslel. Výpadky zvyčajne spôsobia tie zabudnuté: subdoména zriadená pre kampaň, load balancer s ručne nahraným certifikátom, poštový server alebo úloha obnovy, ktorá už týždne potichu zlyháva.

Platnosť certifikátov sa navyše skracuje, takže obnova prebieha čoraz častejšie.

Platnosť certifikátov sa skracuje

Pravidlá, ktorými sa riadia všeobecne dôveryhodné certifikačné autority, určuje CA/Browser Forum. V apríli 2025 schválilo hlasovanie SC-081v3 a aktuálne TLS Baseline Requirements (časť 6.3.2) stanovujú pre najdlhšiu platnosť certifikátu tento harmonogram:

  • vydaný pred 15. marcom 2026: najviac 398 dní,
  • vydaný od 15. marca 2026: najviac 200 dní,
  • vydaný od 15. marca 2027: najviac 100 dní,
  • vydaný od 15. marca 2029: najviac 47 dní.

V praxi to znamená, že do roku 2029 by sa ručne obnovovaný certifikát musel meniť zhruba každých 6 až 7 týždňov. Každý certifikát, ktorý ešte obnovujete ručne podľa pripomienky v kalendári, tak predstavuje opakované riziko výpadku.

Ani na pripomienky od certifikačnej autority sa nedá spoliehať. Let's Encrypt napríklad ukončil 4. júna 2025 posielanie mailov o expirácii.

Prečo obnova zlyhá

Bežné príčiny sú celkom všedné:

  • Zlyhá validácia. Validácia cez HTTP sa pokazí po zmene presmerovania alebo firewallu, validácia cez DNS po zmene poskytovateľa DNS alebo po expirácii tokenu API.
  • Obnova prebehne, ale služba sa nenačíta znova, takže webový server ďalej posiela starý certifikát.
  • Certifikáty sa ručne skopírovali na load balancer, CDN, zariadenie alebo poštový server, kam automatizácia nedosiahne.
  • Server nemá vlastníka. Testovacie servery a staré marketingové subdomény často majú certifikát, ale nikto za ne nezodpovedá. Viac v článku zabudnuté testovacie servery.
  • Vypršal účet alebo platba za komerčný certifikát.
  • Reťazec medziľahlých certifikátov je neúplný, čo niektorí klienti odmietnu ešte pred expiráciou.

Ako si expiráciu certifikátu overiť sami

Pre jeden názov hostiteľa ukáže openssl dátumy, ktoré server naozaj posiela:

echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -dates -issuer

Pozrite sa na notAfter. Každý názov hostiteľa overte zvlášť, vrátane www, API a poštových serverov. Pri poštovom serveri so STARTTLS:

echo | openssl s_client -starttls smtp -connect mail.example.com:25 2>/dev/null | openssl x509 -noout -enddate

Názvy hostiteľov, na ktoré ste možno zabudli, nájdete v záznamoch Certificate Transparency na crt.sh vyhľadaním %.example.com. Je tam každý certifikát vydaný pre vašu doménu, aj pre subdomény, na ktoré si už nikto nespomína. Ako výsledky čítať, vysvetľuje náš článok o záznamoch Certificate Transparency.

Ako zabrániť expirácii certifikátov

  1. Automatizujte vydávanie a obnovu cez ACME všade, kde sa dá, a zabezpečte, aby úloha obnovy potom službu znova načítala.
  2. Obnovujte dlho pred expiráciou, dosť skoro na to, aby ostal čas opraviť zlyhanú validáciu.
  3. Nastavte upozornenie na zlyhanú obnovu, nielen na úspešnú. Klasickou príčinou je cron, ktorý skončí chybou a nikomu nič nepovie.
  4. Veďte zoznam všetkých názvov hostiteľov s certifikátom a zostavte ho zo záznamov Certificate Transparency, nie z pamäti.
  5. Sledujte zvonku. Overujte certifikát, ktorý server naozaj posiela, pretože ten vidia klienti. Interný záznam „obnovené“ nie je to isté.
  6. Odstráňte, čo už nepoužívate. Subdoméne, ktorá už nič neposkytuje, zrušte záznam DNS aj certifikát.

Keď certifikát už expiroval

  • Obnovte ho alebo vydajte nový, nasaďte ho a službu znova načítajte.
  • Cez openssl s_client mimo vašej siete overte, že server posiela nový dátum notAfter.
  • Overte, že server posiela celý reťazec, nielen koncový certifikát.
  • Skontrolujte závislých klientov: mobilné aplikácie, integrácie partnerov a webhooky možno bude treba spustiť znova.
  • Zistite, prečo upozornenie neprišlo, a opravte to.

Kontrolný zoznam

  • Zoznam všetkých názvov hostiteľov s certifikátom vrátane poštových serverov a API.
  • Automatizácia cez ACME s opätovným načítaním služby.
  • Upozornenia na zlyhanú obnovu.
  • Kontrola expirácie zvonku na každom názve hostiteľa.
  • Pripravenosť na platnosť 100 dní a 47 dní.

Expirovať môžu aj domény, a to s úplne inými následkami. Viac v článku čo sa stane, keď vaša doména expiruje.

Ako pomáha Datahorses

Datahorses stráži vašu firmu zvonku a overuje certifikáty, ktoré vaše servery naozaj posielajú: expiráciu, pokazené reťazce aj certifikáty podpísané samým sebou. Na blížiacu sa expiráciu certifikátu alebo domény vás upozorní 30, 14 a 3 dni vopred. Do vašich systémov nevstupujeme a žiadne prístupy nepotrebujeme. Pozrite sa, čo strážime, a v ukážkovom prehľade uvidíte, ako to vyzerá.

Ďalšie články

Všetky články