SSL certifikát expiroval - co dělat
· 6 min čtení
Ve zkratce: Expirace SSL certifikátu způsobí, že prohlížeče blokují přístup hláškou "Vaše připojení není soukromé". Konverze padá na nulu, dokud certifikát neobnovíte. Tento článek je rychlý postup, co dělat okamžitě a jak tomu předcházet.
Ve zkratce: Expirace SSL certifikátu způsobí, že prohlížeče blokují přístup hláškou "Vaše připojení není soukromé". Konverze padá na nulu, dokud certifikát neobnovíte. Tento článek je rychlý postup, co dělat okamžitě a jak tomu předcházet.
Co vidí návštěvník
Expirovaný certifikát spustí v prohlížeči celoobrazovkové varování:
- 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"
Běžný návštěvník klikne "Zpět". Přes 95 % organického trafficu jednoduše odejde. Bot crawlery (Googlebot, Bingbot) přestanou indexovat a po několika dnech začnete ztrácet pozice ve vyhledávání.
Postup, pokud právě teď expiroval
- Identifikujte, kdo cert vystavil. V terminálu:
openssl s_client -connect mywebsite.com:443 -servername mywebsite.com < /dev/null 2>/dev/null | openssl x509 -noout -issuer -dates - Let's Encrypt (zdarma, 90denní platnost): typicky přes
certbot renewnebo přes panel hostingu (One-click renewal). - Komerční cert (DigiCert, Sectigo, GlobalSign): přihlaste se do admin panelu vydavatele, vygenerujte nový CSR, projdete validací domény (DNS TXT nebo email).
- Nasaďte nový cert do reverse proxy (nginx, Caddy, Traefik) a restartujte / reloadněte proces.
- Ověřte přes SSL Labs nebo přes náš SSL check nástroj, zda se cert správně servuje a chain je kompletní.
Pozor: Nezapomeňte i na intermediate cert - bez něj sice moderní prohlížeče mohou chain dotáhnout přes AIA, ale starší klienti a některé API knihovny budou selhávat.
Automatický renewal: Let's Encrypt + certbot
Nejjednodušší prevence je úplně automatizovat obnovu. Let's Encrypt cert se obnovuje každých 90 dní přes certbot:
# /etc/cron.d/certbot-renew
0 3 * * * root certbot renew --quiet --deploy-hook "systemctl reload nginx"
Tento cron běží denně ve 3:00 ráno. Certbot interně kontroluje, zda se cert blíží k expiraci (defaultně 30 dní dopředu). Pokud ano, obnoví ho a po úspěchu reloadne nginx. Jinak nedělá nic.
Caddy a Traefik: úplně automaticky
Pokud používáte Caddy nebo Traefik jako reverse proxy, ACME challenge je zabudovaná v binárce. Stačí v config označit doménu a server si cert vyžádá i obnoví sám:
# Caddyfile
mywebsite.com {
reverse_proxy localhost:3000
}
Žádný certbot, žádný cron. Caddy si na pozadí volá Let's Encrypt API a manažuje renewal cycle.
Komerční certy: 1-3letá platnost
Od září 2020 mají všechny veřejně důvěryhodné certy maximální životnost 397 dní (CA/B Forum baseline). Některé firmy stále upřednostňují komerční CA z důvodů:
- Extended Validation (EV) zobrazuje organizaci v adresním řádku (Chrome ji však už od 2019 nezobrazuje prominentně).
- Wildcard pro mnoho subdomén i když Let's Encrypt už wildcards podporuje přes DNS-01.
- Warranty finanční odpovědnost CA při compromise.
- Compliance / audit některá odvětví mají externí požadavky.
Pro většinu webů stačí Let's Encrypt nebo jiná zdarma CA (ZeroSSL, Buypass).
Monitoring expirace jako safety net
I když máte automatický renewal, monitoring expirace funguje jako pojistka. Renewal může selhat z důvodu:
- Rate limit ze strany CA (Let's Encrypt: 5 duplikátů / 7 dní)
- Změna DNS, která rozbije ACME challenge
- Firewall pravidlo blokující port 80 (HTTP-01 challenge)
- Pádu certbot procesu nebo cronu, který nikdo nezaregistroval
ePulz.io sleduje expiry každého kontrolovaného endpointu a posílá alert 30, 14, 7, 3 a 1 den před koncem platnosti. Stačí jeden zelený signál, že cert se stihl obnovit - a vy máte jistotu, že automatika funguje.
Aktivujte SSL monitoring
Alerty 30/14/7/3/1 den před expirací. Bez konfigurace, bez DNS změn. 7 dní zdarma.
Vyzkoušejte ePulz.io zdarma - 7 dní bez kreditní karty.
Vytvořit účet