Expirácia SSL sa dá predvídať: ako ju zachytiť na weboch klientov
Zhrnutie
Každý certifikát nesie dátum svojej expirácie, takže expirovaný certifikát je zlyhanie procesu, nie prekvapenie. Automatická obnova sa aj tak pokazí: web sa presťahoval k inému hostingu, zmenilo sa DNS, úloha na obnovu prestala bežať. Od 15. marca 2026 platia verejné certifikáty najviac 200 dní, v roku 2029 to klesne na 47 dní, a Let's Encrypt v júni 2025 prestal posielať e-maily o expirácii. Certifikát overíte jedným príkazom openssl a pri väčšom počte webov nechajte monitor čítať dátum každý deň a upozorniť vás 30, 14, 7 a 1 deň vopred. Presne to robí Baromio: číta dátum expirácie a vydavateľa z jedného miesta a nekontroluje reťazec certifikátov ani šifry.
Väčšina výpadkov príde bez varovania. Expirujúci certifikát je iný: dátum expirácie je zapísaný priamo v certifikáte, a to mesiace vopred. Keď tento dátum uplynie, prehliadače namiesto webu zobrazia bezpečnostné varovanie na celú stránku.
Napriek tomu sa to stáva aj tímom, ktoré by to mali vedieť. 3. februára 2020 bol Microsoft Teams na niekoľko hodín nedostupný, pretože expiroval autentifikačný certifikát, ako vtedy potvrdil Microsoft.
Prečo certifikáty na weboch klientov stále expirujú
Väčšina klientskych webov dnes používa bezplatné certifikáty, ktoré sa obnovujú automaticky. Zlyháva práve obnova, a zlyháva potichu. Časté dôvody:
- Web sa presťahoval. DNS teraz smeruje na nový hosting alebo CDN, no starý server sa stále pokúša certifikát obnoviť, alebo obnovu na novom serveri nikto nenastavil.
- Úloha na obnovu prestala bežať. Stačí aktualizácia servera, iná verzia PHP alebo plný disk, a cron úloha či ACME klient už nebeží.
- Obnova prebehla, server ju nenačítal. Nový certifikát je na disku, webový server však stále používa starý.
- Niekto ho kúpil ručne. Platený certifikát od bývalej agentúry klienta alebo z vlastného účtu klienta, ktorý obnovuje ten, kto si spomenie.
- Doménové mená, ktoré nikto nesleduje.
wwwaj doména bezwww, subdoména e-shopu, staging web: každé môže mať vlastný certifikát.
Dve zmeny robia tento problém pravdepodobnejším, nie menej pravdepodobným:
- Let's Encrypt 4. júna 2025 prestal posielať e-mailové pripomienky expirácie. Ak obnova zlyhá, nikto vám to nepovie, pokiaľ ju nemonitorujete.
- Certifikáty sa skracujú. Podľa hlasovania CA/Browser Forum SC-081 platia verejné TLS certifikáty vydané od 15. marca 2026 najviac 200 dní, od 15. marca 2027 100 dní a od 15. marca 2029 47 dní. Certifikáty Let's Encrypt už teraz štandardne platia 90 dní a obnova sa odporúča každých 60 dní. Certifikát kúpený dnes už nemôže platiť rok, takže ručné obnovy prichádzajú najmenej dvakrát častejšie.
Ručná kontrola certifikátu
Pre jeden web tento príkaz vypíše dátum expirácie a vydavateľa:
echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -enddate -issuer
Na -servername záleží: server, ktorý hostí viac webov, vyberá certifikát podľa názvu. Spustite príkaz aj pre www.example.com a pre každú subdoménu, ktorú klient používa. V prehliadači kliknite na ikonu vľavo od adresy a otvorte podrobnosti certifikátu.
Užitočné pravidlo pre certifikáty Let's Encrypt v štandardnom 90-dňovom cykle: obnova by mala prebehnúť, keď zostáva približne 30 dní. Ak certifikátu zostáva už len 14 dní, obnova s najväčšou pravdepodobnosťou zlyhala. Nečakajte na varovanie 7 dní vopred.
Varovania, na ktoré naozaj zareagujete
Varovanie 30 dní vopred sa ľahko prehliadne a varovanie, ktoré príde do rovnakého kanála ako všetky ostatné notifikácie, zapadne. Pomôžu dva návyky:
- Ku každej fáze pristupujte inak. Varovanie 30 dní vopred je pripomienka skontrolovať nastavenie obnovy; varovania 7 dní a 1 deň vopred znamenajú, že to treba opraviť ešte dnes.
- Neskoré varovania posielajte tam, kde čítate správy každý deň, nie do rušného zdieľaného kanála.
Čo Baromio kontroluje
- Čo číta: raz denne a krátko po zapnutí sa Baromio pripojí k hostiteľovi monitora na porte 443 (alebo na porte uvedenom v URL) a prečíta dátum expirácie certifikátu a jeho vydavateľa. Stránka monitora zobrazuje vydavateľa a "Platný do" s počtom zostávajúcich dní; karta monitora ukazuje rovnaký počet dní na štítku SSL.
- Kedy vás varuje: keď zostáva 30, 14, 7 a 1 deň, a raz, keď certifikát expiroval. Každá fáza upozorní iba raz, e-mailom a do každého pripojeného kanála Slack, Discord alebo webhook (Telegram v plánoch Pro a Business). Obnovený certifikát fázy vynuluje.
- Kde ho zapnúť: Monitorovať SSL certifikát na HTTP monitore alebo monitore kľúčového slova s URL
https://, v Pridať nový monitor alebo Upraviť. Predvolene je vypnutý, aj pri monitoroch vytvorených hromadným importom, preto ho zapnite pre každý web. Je dostupný v každom pláne: 20 monitorov vo Free, 30 v Pro (9 EUR mesačne), 100 v Business (29 EUR mesačne). - Čo nerobí: neoveruje reťazec certifikátov, nekontroluje zhodu názvu, netestuje verzie protokolu ani šifry a nekontroluje z viac ako jedného miesta. Nič neobnovuje; obnova zostáva na vás alebo na hostingu.
Krátka rutina pre weby klientov
- Spíšte všetky doménové mená každého klienta: doménu bez
www,www, subdomény, staging. - Na každé, ktoré beží na HTTPS, nasaďte monitor s kontrolou SSL.
- Keď príde varovanie pre certifikát, ktorý sa má obnovovať sám, zistite, prečo obnova zlyhala; nestačí ho ručne obnoviť a ísť ďalej.
- Po presune webu na nový hosting alebo CDN skontrolujte certifikát ešte v ten istý deň príkazom openssl uvedeným vyššie.
Zdroje
- Engadget, Microsoft Teams went down because of an expired certificate, 3. februára 2020.
- Let's Encrypt, Ending Support for Expiration Notification Emails, 22. januára 2025: služba skončila 4. júna 2025.
- Let's Encrypt, FAQ: štandardné certifikáty platia 90 dní, obnova sa odporúča každých 60 dní.
- CA/Browser Forum, Ballot SC081v3, schválené 11. apríla 2025.
- DigiCert, TLS certificate lifetimes will officially reduce to 47 days, 16. mája 2025: harmonogram s konkrétnymi dátumami (200 / 100 / 47 dní).