Powrót do bloga

Certyfikat SSL wygasł - co robić

· 6 min czytania

Wygasły certyfikat SSL blokuje dostęp komunikatem o niezabezpieczonym połączeniu, a konwersja spada do zera. Co zrobić od razu i jak temu zapobiec.

Certyfikat SSL wygasł - co robić

Co widzi odwiedzający

Wygasły certyfikat uruchamia w przeglądarce pełnoekranowe ostrzeżenie:

  • 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"

Zwykły odwiedzający klika "Wstecz". Zdecydowana większość odwiedzających opuszcza stronę przy takim ostrzeżeniu. Crawlery wyszukiwarek (Googlebot, Bingbot) przestają indeksować, i po kilku dniach zaczynasz tracić pozycje w wyszukiwarce.

Procedura, jeśli właśnie teraz wygasł

  1. Zidentyfikuj, kto wystawił certyfikat. W terminalu: openssl s_client -connect mywebsite.com:443 -servername mywebsite.com < /dev/null 2>/dev/null | openssl x509 -noout -issuer -dates
  2. Let's Encrypt (za darmo, 90-dniowa ważność): typowo przez certbot renew lub przez panel hostingu (One-click renewal).
  3. Komercyjny certyfikat (DigiCert, Sectigo, GlobalSign): zaloguj się w panelu admin wydawcy, wygeneruj nowy CSR i przejdź walidację domeny (rekord DNS TXT lub email).
  4. Wdroż nowy certyfikat do reverse proxy (nginx, Caddy, Traefik) i zrestartuj lub przeładuj proces.
  5. Sprawdź przez SSL Labs lub przez nasze narzędzie SSL check, czy certyfikat jest poprawnie serwowany i łańcuch certyfikatów jest kompletny.

Uwaga: Nie zapomnij o intermediate cert - bez niego nowoczesne przeglądarki mogą doczołgać chain przez AIA, ale starsi klienci i niektóre biblioteki API będą zawodzić.

Automatyczne odnawianie: Let's Encrypt + certbot

Najprostsza prewencja to całkowicie zautomatyzować odnawianie. Certyfikat Let's Encrypt odnawia się co 90 dni przez certbot:

# /etc/cron.d/certbot-renew
0 3 * * * root certbot renew --quiet --deploy-hook "systemctl reload nginx"

Ten cron biegnie codziennie o 3:00 rano. Certbot wewnętrznie sprawdza, czy certyfikat zbliża się do wygaśnięcia (gdy pozostaje mniej niż jedna trzecia jego żywotności, co dla 90-dniowego certyfikatu Let's Encrypt wypada około 30 dni przed końcem). Jeśli tak, odnawia go i po sukcesie przeładowuje nginx. Inaczej nic nie robi.

Caddy i Traefik: w pełni automatycznie

Jeśli używasz Caddy lub Traefik jako reverse proxy, ACME challenge jest wbudowane bezpośrednio w binarkę. Wystarczy oznaczyć domenę w config i serwer sam wystawi i odnowi certyfikat:

# Caddyfile
mywebsite.com {
  reverse_proxy localhost:3000
}

Żadnego certbot, żadnego cron. Caddy w tle wywołuje API Let's Encrypt i zarządza całym cyklem odnawiania.

Komercyjne certyfikaty: ważność 1-3 lata

Od września 2020 wszystkie publicznie zaufane certyfikaty mają maksymalną żywotność 398 dni (CA/B Forum baseline). Niektóre firmy mimo to nadal preferują komercyjne CA, a to z następujących powodów:

  • Extended Validation (EV) pokazuje organizację w pasku adresu (Chrome od 2019 nie wyświetla jej już prominentnie).
  • Wildcard dla wielu subdomen choć Let's Encrypt już wspiera wildcards przez DNS-01.
  • Warranty odpowiedzialność finansowa CA przy compromise.
  • Compliance / audyt niektóre branże mają zewnętrzne wymagania.

Dla większości stron wystarczy Let's Encrypt lub inna darmowa CA (ZeroSSL, Buypass).

Monitoring wygaśnięcia jako safety net

Nawet jeśli masz automatyczne odnawianie, monitoring wygaśnięcia działa jak ubezpieczenie. Odnawianie może bowiem zawieść z kilku powodów:

  • rate limit ze strony CA (Let's Encrypt: 5 duplikatów / 7 dni)
  • zmiana DNS, która rozbija ACME challenge
  • reguła firewalla blokująca port 80 (HTTP-01 challenge)
  • upadek procesu certbot lub cron, którego nikt nie zauważył

ePulz.io śledzi expiry każdego sprawdzanego endpointu i wysyła alert 30, 14, 7, 3 i 1 dzień przed końcem ważności. Wystarczy jeden zielony sygnał, że certyfikat zdążył się odnowić - i masz pewność, że automatyka działa.

Aktywuj monitoring SSL

Alerty 30/14/7/3/1 dzień przed wygaśnięciem. Bez konfiguracji, bez zmian DNS. 7 dni za darmo.

Uruchom monitoring →

Udostępnij: Skopiowano link

Wypróbuj ePulz.io za darmo - 7 dni bez karty kredytowej.

Utwórz konto