Čo robiť, keď expiruje SSL certifikát
V skratke: Expirácia SSL certifikátu spôsobí, že prehliadače blokujú prístup hláškou "Your connection is not private". Konverzia padá na nulu kým certifikát neobnovíte. Tento článok je rýchly postup, čo robiť okamžite a ako tomu predchádzať.
Čo vidí návštevník
Expirovaný certifikát spustí v prehliadači plnoobrazovkové varovanie:
- Chrome / Edge: "Your connection is not private" (NET::ERR_CERT_DATE_INVALID)
- Firefox: "Warning: Potential Security Risk Ahead" (SEC_ERROR_EXPIRED_CERTIFICATE)
- Safari: "This Connection Is Not Private"
Bežný návštevník klikne "Späť". Cez 95 % organického trafficu jednoducho odíde. Bot crawleri (Googlebot, Bingbot) prestanú indexovať a po niekoľkých dňoch začnete strácať pozície vo vyhľadávaní.
Postup ak práve teraz expiroval
- Identifikujte, kto cert vystavil. V termináli:
openssl s_client -connect vasweb.sk:443 -servername vasweb.sk < /dev/null 2>/dev/null | openssl x509 -noout -issuer -dates - Let's Encrypt (zadarmo, 90-dňová platnosť): typicky cez
certbot renewalebo cez panel hostingu (One-click renewal). - Komerčný cert (DigiCert, Sectigo, GlobalSign): prihláste sa v admin paneli vydavateľa, vygenerujte nový CSR, prejdete validáciou domény (DNS TXT alebo email).
- Nasaďte nový cert do reverse proxy (nginx, Caddy, Traefik) a reštartujte / reload-nite proces.
- Overte cez SSL Labs alebo cez náš SSL check nástroj, či sa cert správne servuje a chain je kompletný.
Automatický renewal: Let's Encrypt + certbot
Najjednoduchšia prevencia je úplne automatizovať obnovu. Let's Encrypt cert sa obnovuje každých 90 dní cez certbot:
# /etc/cron.d/certbot-renew
0 3 * * * root certbot renew --quiet --deploy-hook "systemctl reload nginx"
Tento cron beží denne o 3:00 ráno. Certbot interne kontroluje, či sa cert blíži k expirácii (defaultne 30 dní vopred). Ak áno, obnoví ho a po úspechu reload-ne nginx. Inak nerobí nič.
Caddy a Traefik: úplne automaticky
Ak používate Caddy alebo Traefik ako reverse proxy, ACME challenge je zabudovaná v binárke. Stačí v config označiť doménu a server si cert vyžiada aj obnoví sám:
# Caddyfile
vasweb.sk {
reverse_proxy localhost:3000
}
Žiadny certbot, žiadny cron. Caddy si v pozadí volá Let's Encrypt API a manažuje renewal cycle.
Komerčné certy: 1-3 ročná platnosť
Od septembra 2020 majú všetky verejne dôveryhodné certy maximálnu životnosť 397 dní (CA/B Forum baseline). Niektoré firmy stále uprednostňujú komerčné CA z dôvodov:
- Extended Validation (EV) - zobrazuje organizáciu v adresnom riadku (Chrome ju však už od 2019 nezobrazuje prominent-ne).
- Wildcard pre veľa subdomén - aj keď Let's Encrypt už wildcards podporuje cez DNS-01.
- Warranty - finančná zodpovednosť CA pri compromise.
- Compliance / audit - niektoré odvetvia majú externé požiadavky.
Pre väčšinu webov stačí Let's Encrypt alebo iná zadarmo CA (ZeroSSL, Buypass).
Monitoring expirácie ako safety net
Aj keď máte automatický renewal, monitoring expirácie funguje ako poistka. Renewal môže zlyhať z dôvodu:
- Rate limit zo strany CA (Let's Encrypt: 5 duplikátov / 7 dní)
- Zmena DNS, ktorá rozbije ACME challenge
- Firewall pravidlo blokujúce port 80 (HTTP-01 challenge)
- Pádu certbot procesu alebo cron-u, ktorý nikto nezaregistroval
ePulzio sleduje expiry každého kontrolovaného endpointu a posiela alert 30, 14, 7, 3 a 1 deň pred koncom platnosti. Stačí jeden zelený signál, že cert sa stihol obnoviť - a vy máte istotu, že automatika funguje.
Aktivujte SSL monitoring
Alerty 30/14/7/3/1 deň pred expiráciou. Bez konfigurácie, bez DNS zmien. 7 dní zdarma.
Spustiť monitoring →