Błędy SSL/TLS — co oznaczają i jak je naprawić?
Błędy SSL/TLS to jedne z najczęstszych problemów technicznych z jakimi spotykają się właściciele stron i administratorzy serwerów. Przeglądarka wyświetla ostrzeżenie o bezpieczeństwie gdy certyfikat SSL jest nieważny, wygasły lub nieprawidłowo skonfigurowany. Taki błąd skutecznie odstraszy użytkowników i może negatywnie wpłynąć na pozycję strony w wynikach wyszukiwania.
Chcesz sprawdzić certyfikat SSL swojej strony?
Sprawdź certyfikat SSLJak działa certyfikat SSL/TLS?
Certyfikat SSL/TLS to cyfrowy dokument potwierdzający tożsamość serwera i umożliwiający szyfrowanie połączenia. Wydawany jest przez zaufane urzędy certyfikacji (CA — Certificate Authority). Przeglądarka weryfikuje certyfikat przy każdym połączeniu HTTPS — sprawdza czy jest ważny, czy nie wygasł i czy pochodzi od zaufanego CA.
Najczęstsze błędy SSL/TLS
Certyfikat SSL ma datę ważności. Po jej upłynięciu przeglądarka wyświetla błąd i blokuje dostęp do strony. Certyfikaty Let's Encrypt ważne są 90 dni, komercyjne zazwyczaj 1 rok.
Odnów certyfikat SSL. Przy Let's Encrypt skonfiguruj automatyczne odnawianie przez certbot (certbot renew --dry-run). Ustaw monitoring daty wygaśnięcia — nasz checker SSL wysyła alerty.
Certyfikat został wystawiony przez CA którego przeglądarka nie rozpoznaje jako zaufanego. Może to być certyfikat self-signed (podpisany samodzielnie) lub certyfikat od CA nieobecnego w magazynie zaufanych certyfikatów przeglądarki.
- Certyfikat self-signed — używany na środowiskach developerskich
- Brakujące certyfikaty pośrednie (intermediate certificates)
- Certyfikat od CA który utracił zaufanie (np. Symantec w 2018)
Na produkcji użyj certyfikatu od zaufanego CA (Let's Encrypt, DigiCert, Sectigo). Sprawdź czy łańcuch certyfikatów jest kompletny — serwer powinien wysyłać certyfikat główny + wszystkie certyfikaty pośrednie.
Certyfikat został wystawiony dla innej domeny niż ta pod którą próbujesz się połączyć. Przeglądarka porównuje domenę w certyfikacie (pole CN lub SAN) z adresem w pasku adresu.
- Certyfikat wystawiony dla example.com ale strona działa pod www.example.com
- Brak wpisu dla subdomeny w polu SAN (Subject Alternative Names)
- Na serwerze zainstalowany certyfikat dla innej domeny (błąd konfiguracji vhosta)
Wystawiając certyfikat upewnij się że obejmuje wszystkie warianty domeny: example.com i www.example.com. Certyfikaty wildcard (*.example.com) pokrywają wszystkie subdomeny jednego poziomu.
Przeglądarka i serwer nie mogą uzgodnić wspólnej wersji protokołu TLS ani zestawu szyfrów. Może też oznaczać że serwer wysyła dane HTTP zamiast HTTPS.
- Serwer obsługuje tylko przestarzałe protokoły TLS 1.0/1.1 (wycofane w 2020)
- Port 443 zwraca ruch HTTP zamiast HTTPS
- Błędna konfiguracja nginx/Apache — brak dyrektywy ssl on
Skonfiguruj serwer aby obsługiwał TLS 1.2 i TLS 1.3. Sprawdź konfigurację vhosta — upewnij się że port 443 ma włączony SSL. Użyj narzędzia SSL Labs do audytu konfiguracji.
Strona jest dostępna przez HTTPS, ale ładuje zasoby (obrazki, skrypty, style) przez niezaszyfrowane HTTP. Przeglądarka blokuje aktywne zasoby (JS, CSS) i wyświetla ostrzeżenie dla pasywnych (obrazki).
Zamień wszystkie odwołania http:// na https:// lub użyj protokołu relatywnego //. W WordPress użyj wtyczki Really Simple SSL. Dodaj nagłówek Content-Security-Policy: upgrade-insecure-requests.
Serwer przekierowuje w nieskończoność między HTTP a HTTPS. Często wynika z błędnej konfiguracji przekierowania gdy za serwerem stoi load balancer lub CDN który terminuje SSL.
Sprawdź konfigurację przekierowania w .htaccess lub nginx. Jeśli używasz Cloudflare — ustaw tryb SSL na 'Full (strict)'. W WordPress sprawdź opcje adresu URL w ustawieniach.
Typy certyfikatów SSL
Certyfikaty SSL różnią się poziomem weryfikacji tożsamości właściciela i zakresem ochrony.
| Typ | Weryfikacja | Czas wydania | Zastosowanie |
|---|---|---|---|
| DV | Domain Validation | Minut — godzin | Blogi, strony osobiste, małe sklepy |
| OV | Organization Validation | 1-3 dni | Firmowe strony, portale B2B |
| EV | Extended Validation | 1-2 tygodnie | Banki, instytucje finansowe |
| Wildcard | Subdomain Validation | Minut — godzin | Wiele subdomen jednej domeny |
| Multi-SAN | Multiple Domains | Minut — dni | Wiele różnych domen na jednym certyfikacie |
Dla większości stron internetowych certyfikat DV od Let's Encrypt jest wystarczający i całkowicie darmowy. Let's Encrypt wydaje certyfikaty automatycznie i obsługuje auto-odnowienie co 90 dni.