Bezpieczeństwo

Wygasł certyfikat SSL

Zamiast strony odwiedzający widzi czerwone ostrzeżenie i musi kliknąć „mimo to przejdź dalej”. Większość takich przypadków to wygasły certyfikat albo niedokończone odnowienie.

3 min czytania

Ostrzeżenie „połączenie nie jest prywatne” zatrzymuje większość odwiedzających — i słusznie, bo przeglądarka nie potrafi odróżnić zapomnianego odnowienia od prawdziwego ataku. Dobra wiadomość: prawie zawsze chodzi o jedną z kilku powtarzalnych przyczyn.

Najpierw ustal, co dokładnie jest nie tak

Kliknij ikonę ostrzeżenia obok adresu i otwórz szczegóły certyfikatu. Interesują Cię trzy rzeczy: data ważności, nazwa domeny, na którą certyfikat został wystawiony, oraz wystawca. Szybciej i pewniej zrobisz to z wiersza poleceń:

openssl s_client -connect twojadomena.pl:443 -servername twojadomena.pl < /dev/null 2>/dev/null | openssl x509 -noout -dates -subject -issuer

W odpowiedzi dostaniesz daty notBefore i notAfter oraz domenę z pola subject. To wystarcza, żeby rozstrzygnąć między trzema najczęstszymi scenariuszami.

Certyfikat wygasł

Data notAfter jest w przeszłości. Certyfikaty Let's Encrypt są wystawiane na 90 dni i odnawiane automatycznie, zwykle około 30 dni przed końcem — więc wygaśnięcie prawie nigdy nie znaczy „zapomniałem”, a „automat przestał działać”. Sprawdź to poleceniem:

sudo certbot renew --dry-run

Test pokaże, czy odnowienie w ogóle przejdzie. Najczęstsze powody, dla których przestaje:

  • Zmiana w konfiguracji serwera — przekierowanie całego ruchu na HTTPS potrafi zablokować ścieżkę /.well-known/acme-challenge/, którą weryfikowana jest domena.
  • Zadanie cron albo timer systemowy przestał się uruchamiać, na przykład po migracji na inny serwer.
  • Domena przestała wskazywać na ten serwer, więc weryfikacja nie ma jak się udać.

Certyfikat na inną nazwę

Druga typowa sytuacja: certyfikat jest aktualny, ale wystawiony na twojadomena.pl, a odwiedzający wchodzi na www.twojadomena.pl — albo odwrotnie. Przeglądarka zgłasza błąd, mimo że „SSL jest”. Certyfikat musi obejmować obie nazwy, a jedna wersja powinna przekierowywać na drugą. Przy certyfikacie wildcard pamiętaj, że *.twojadomena.pl obejmuje subdomeny, ale samej domeny bez prefiksu już nie.

Niekompletny łańcuch

Najbardziej podstępny przypadek: w przeglądarce na komputerze strona działa, a na telefonie albo w aplikacji zgłasza błąd. Zwykle znaczy to, że serwer nie wysyła certyfikatu pośredniego. Część klientów ma go w pamięci z innych wizyt, część nie — stąd pozorna losowość. W konfiguracji serwera należy wskazać pełny łańcuch (przy Let's Encrypt plik fullchain.pem, nie cert.pem).

To nie to samo co mieszana treść. Jeśli kłódka jest przekreślona, ale nie ma ostrzeżenia na pełny ekran, certyfikat jest w porządku — strona dociąga po prostu obrazy lub skrypty po http://. Przyczyna i naprawa są zupełnie inne: trzeba poprawić adresy w treści i szablonie.

Żeby nie wróciło

Po naprawie zostają dwie rzeczy do zrobienia. Po pierwsze, upewnij się, że odnawianie działa automatycznie i że ktoś się dowie, kiedy przestanie — najprościej przez monitoring, który sprawdza datę ważności i ostrzega kilkanaście dni wcześniej. Po drugie, jeśli strona wymusza HTTPS nagłówkiem HSTS, sprawdź to zawczasu: przy włączonym HSTS odwiedzający nie mogą kliknąć „przejdź dalej”, więc wygasły certyfikat oznacza stronę niedostępną, a nie tylko ostrzeżenie.

Nie udaje się?

Jeśli problem zostaje albo wolisz nie eksperymentować na działającej stronie, napisz do nas - sprawdzimy to za Ciebie. Diagnoza nic nie kosztuje.

Napisz do nas