Certyfikat SSL wygasł: jak szybko przywrócić stronę
W skrócie
Po wygaśnięciu certyfikatu przeglądarki pokazują ostrzeżenie zamiast strony: Chrome z kodem NET::ERR_CERT_DATE_INVALID, Firefox z kodem SEC_ERROR_EXPIRED_CERTIFICATE. Jeśli ostrzeżenie widzą wszyscy, wygeneruj nowy certyfikat dla tych samych adresów i wgraj go w to samo miejsce; na własnym serwerze przeładuj go po podmianie plików. Jeśli widzisz je tylko Ty, sprawdź datę w swoim urządzeniu.
Co pokazuje przeglądarka
- Chrome pokazuje „Połączenie nie jest prywatne” z kodem
NET::ERR_CERT_DATE_INVALID. Po kliknięciu „Zaawansowane” pisze, ile dni temu certyfikat wygasł, na przykład: „Ten serwer nie może udowodnić, że należy do domeny firma.pl. Jego certyfikat wygasł 3 dni temu.”, i podaje datę ustawioną w komputerze z pytaniem, czy jest prawidłowa. - Firefox pokazuje „Zachowaj ostrożność. Coś tu nie gra.” i pisze, że witryna jest błędnie skonfigurowana albo zegar urządzenia jest ustawiony na błędną datę. Po kliknięciu „Zaawansowane” podaje datę wygaśnięcia certyfikatu i datę ustawioną w urządzeniu. Kod błędu:
SEC_ERROR_EXPIRED_CERTIFICATE.
Ten sam kod Chrome pokazuje też wtedy, gdy certyfikat jest w porządku, ale urządzenie odwiedzającego ma złą datę. Dlatego zacznij od sprawdzenia, kto widzi ostrzeżenie.
Ostrzeżenie widzą wszyscy czy tylko Ty?
- Tylko jedno urządzenie, a na innych strona działa: przyczyną jest zegar tego urządzenia. Jak go ustawić, opisujemy w poradniku „Twój zegar się śpieszy”.
- Wszystkie urządzenia z prawidłową datą: certyfikat strony naprawdę wygasł. Potwierdzisz to w narzędziu Sprawdź certyfikat, które pokaże datę wygaśnięcia i liczbę dni od niej. Jeśli to cudza strona, nie podawaj na niej danych i daj znać właścicielowi.
Dlaczego certyfikat wygasł
- Nikt go nie odnowił. Certyfikat Let's Encrypt jest ważny 90 dni, a Let's Encrypt zapowiedział skrócenie ważności do 64 dni od 10 lutego 2027 i do 45 dni od 16 lutego 2028. Bez przypomnienia łatwo przegapić termin.
- Automatyczne odnawianie przestało działać. Hosting albo program na serwerze odnawia certyfikat sam, ale coś się zmieniło: domena wskazuje na inny serwer, weryfikację blokuje przekierowanie albo zapora, skończyła się usługa na hostingu.
- Nowy certyfikat jest, ale serwer pokazuje stary. Certyfikat wgrano do innej domeny w panelu albo nie przypisano go do strony, a na własnym serwerze podmieniono pliki bez przeładowania serwera.
Jak odnowić certyfikat
- Sprawdź w narzędziu Sprawdź certyfikat, dla jakich adresów był wystawiony stary certyfikat (wiersz „Adresy w certyfikacie”).
- Wygeneruj w generatorze nowy certyfikat dla tych samych adresów. Jeśli poprzedni certyfikat z freessl.pl jest zapisany w Twoim koncie, od razu wybierzesz tryb produkcyjny; w przeciwnym razie najpierw przejdź krótki przebieg w trybie testowym.
- Wgraj nowy certyfikat w to samo miejsce co poprzedni, według instrukcji dla swojego hostingu, i sprawdź, czy jest przypisany do domeny, pod którą działa strona.
- Na własnym serwerze podmień pliki
fullchain.pemiprivkey.pem, sprawdź konfigurację (sudo nginx -talbosudo apachectl configtest) i przeładuj serwer:sudo systemctl reload nginxalbosudo systemctl reload apache2(na AlmaLinux i Rocky Linuxhttpd). Bez przeładowania serwer dalej pokazuje stary certyfikat. - Sprawdź stronę jeszcze raz w narzędziu i w oknie prywatnym. Na komputerze z terminalem:
echo | openssl s_client -connect twojadomena.pl:443 \ -servername twojadomena.pl 2>/dev/null \ | grep "Verify return code"
Wygasły certyfikat daje10 (certificate has expired), poprawny0 (ok).
Jak nie dopuścić do tego ponownie
- Zapisz certyfikat w swoim koncie na freessl.pl. Wyślemy przypomnienie e-mailem po dwóch trzecich ważności i drugie tydzień przed jej końcem, z linkiem do instrukcji dla Twojego hostingu.
- Jeśli Twój hosting albo urządzenie ma wbudowane automatyczne odnawianie Let's Encrypt (opisujemy to przy instrukcjach, np. dla LH.pl i QNAP), sprawdzaj raz na jakiś czas, czy naprawdę działa, np. w narzędziu Sprawdź certyfikat.
- Jak sprawdzić datę ważności w każdej przeglądarce, opisujemy na stronie Jak sprawdzić ważność certyfikatu.