Marcin MazurekRSS

Jak sprawdzić certyfikat SSL strony i serwera pocztowego

Zgłoszenie brzmi zwykle tak: „u mnie strona otwiera się normalnie, a klient pisze, że dostaje ostrzeżenie o bezpieczeństwie". Odświeżasz, widzisz kłódkę i nie masz pojęcia, o czym on mówi.

Najczęściej obaj macie rację.

Jeden komunikat, kilka różnych awarii

Przeglądarka pokazuje praktycznie ten sam ekran ostrzeżenia niezależnie od tego, co się popsuło. A popsuć się mogło co innego:

  • Certyfikat wygasł. Najprostszy przypadek i jedyny, który widać gołym okiem.
  • Nazwa się nie zgadza. Certyfikat wystawiony na przyklad.pl, a ktoś wchodzi przez www.przyklad.pl. Albo odwrotnie. Albo doszła subdomena, o której nikt nie pomyślał przy odnawianiu.
  • Łańcuch jest niekompletny. Na serwerze wgrano sam certyfikat końcowy, bez pośredniego. Najbardziej podstępny wariant, bo u części ludzi wszystko działa.
  • Certyfikat jest, ale nie na tym porcie. HTTPS odnowione, poczta zapomniana.

Dlaczego kłódka u Ciebie niczego nie dowodzi

Przy brakującym certyfikacie pośrednim przeglądarka na komputerze często sama sobie radzi — zna go z innej strony albo dociąga z adresu zapisanego w certyfikacie. Kłódka jest, więc uznajesz, że jest dobrze.

Tylko że telefon, curl, biblioteka w PHP-ie albo program księgowy odpytujący Twoje API nie mają tej uprzejmości. Połączenie się wywala, zwykle z komunikatem o nieznanym wystawcy. Stąd zgłoszenia w stylu „integracja przestała działać, ale strona działa".

Co odczytać, zanim zaczniesz zgadywać

Sensowne minimum to cztery rzeczy: ile dni zostało do wygaśnięcia, jakie nazwy są wpisane w polu SAN, czy nazwa hosta pasuje do certyfikatu i czy pośrednie CA są kompletne. Do tego adres IP, na który domena faktycznie wskazuje — bo zaskakująco często okazuje się, że certyfikat odnowiono na jednym serwerze, a domena od miesiąca kieruje na inny.

Napisałem sobie do tego SSL Checkera: wpisujesz domenę i dostajesz daty ważności, wystawcę, listę SAN-ów, rozmiar klucza i cały łańcuch aż do certyfikatu root. Adres z wynikiem da się wysłać dalej, więc do hostingu idzie ode mnie link, a nie zrzut ekranu z opisem „u mnie coś nie działa".

Poczta ma własny certyfikat

To osobna historia i osobne źródło telefonów o dziewiątej rano. Serwer pocztowy słucha na porcie 465, 587 albo 993 i ma tam swój certyfikat — czasem ten sam co strona, czasem zupełnie inny, wystawiony na mail.przyklad.pl. Odnowienie certyfikatu strony nic tu nie zmienia.

Dlatego w formularzu obok domeny jest pole portu. Wpisz 993 zamiast 443, a zobaczysz to, co widzi Outlook w chwili, gdy odmawia pobrania poczty.

Kiedy to sprawdzać

Certyfikaty od Let's Encrypt są ważne 90 dni i odnawiają się same, dopóki się nie zepsują. A psują się cicho: zmiana konfiguracji serwera, przeniesienie domeny, wyłączony cron. Nikt nie dostaje maila, że odnowienie nie przeszło — po prostu któregoś dnia rano strona przestaje się otwierać.

Ja sprawdzam po każdej większej zmianie na serwerze i po każdej migracji domeny. To dwie minuty, a alternatywą jest dowiedzenie się o problemie od klienta.

Zobacz również