Błąd ERR_SSL_VERSION_OR_CIPHER_MISMATCH to częsty problem bezpieczeństwa pojawiający się podczas próby wejścia na witryny HTTPS. Błąd występuje, gdy przeglądarka i serwer nie mogą uzgodnić wspólnej wersji protokołu SSL/TLS lub wspólnego zestawu szyfrów w trakcie uzgadniania TLS, co uniemożliwia nawiązanie bezpiecznego połączenia.

Aby szybko zorientować się w najczęstszych źródłach problemu, zwróć uwagę na poniższe przyczyny:

  • przestarzałe protokoły – obecność lub wymuszanie TLS 1.0/1.1 albo wycofanego SSL 2.0/3.0 po stronie serwera lub klienta;
  • niebezpieczne szyfry – stosowanie RC4 lub innych słabych zestawów nieobsługiwanych przez nowoczesne przeglądarki;
  • niezgodność certyfikatu – brak dopasowania nazwy domeny (SAN) do adresu URL albo błędny/nieaktualny certyfikat;
  • problemy po stronie przeglądarki lub systemu – starą wersję przeglądarki, niepoprawny czas systemowy, konflikt z oprogramowaniem zabezpieczającym;
  • konfiguracja CDN/Cloudflare – nieaktywny certyfikat, rekordy DNS ustawione na „DNS only”, brak wsparcia dla subdomen wielopoziomowych.

Istota błędu ERR_SSL_VERSION_OR_CIPHER_MISMATCH i jego znaczenie dla bezpieczeństwa

Błąd ERR_SSL_VERSION_OR_CIPHER_MISMATCH działa jak mechanizm ochronny przeglądarki, który gwarantuje bezpieczną komunikację między klientem a serwerem. Podczas wejścia na stronę HTTPS wykonywane jest uzgadnianie TLS (TLS handshake) obejmujące weryfikację certyfikatu, wersji protokołu i listy szyfrów.

Jeśli certyfikat lub konfiguracja protokołów/szyfrów są niezgodne, przeglądarka blokuje połączenie, chroniąc użytkownika przed przechwyceniem danych. W Chrome zobaczysz ERR_SSL_VERSION_OR_CIPHER_MISMATCH, a w Firefox komunikat SSL_ERROR_NO_CYPHER_OVERLAP – różne nazwy, ten sam problem.

Podstawowe przyczyny powstawania błędu ERR_SSL_VERSION_OR_CIPHER_MISMATCH

Przestarzałe wersje protokołów SSL i TLS

Najczęstszą przyczyną jest wymuszanie lub dopuszczanie na serwerze starych wersji SSL/TLS. SSL 2.0/3.0 są wycofane, a TLS 1.0/1.1 zdeprecjonowane. Nowoczesne środowiska powinny stosować wyłącznie TLS 1.2 i TLS 1.3.

Dla szybkiego porównania statusów protokołów skorzystaj z poniższego zestawienia:

Protokół Status wsparcia Uwagi bezpieczeństwa
SSL 2.0 Wycofany Bardzo poważne luki, brak akceptacji w przeglądarkach
SSL 3.0 Wycofany Podatność POODLE, całkowicie nienadaje się do użycia
TLS 1.0 Zdeprecjonowany Zagrożenia m.in. BEAST, DROWN
TLS 1.1 Zdeprecjonowany Brak wsparcia w głównych przeglądarkach
TLS 1.2 Wspierany Aktualny standard minimalny
TLS 1.3 Wspierany Szybsze uzgadnianie, nowoczesne szyfry

Przestarzałe zestawy szyfrów i RC4

RC4 został uznany za niebezpieczny i usunięty z obsługi w nowoczesnych przeglądarkach. RC4 należy bezwzględnie wyłączyć i zastąpić go szyframi opartymi na ECDHE/DHE z perfect forward secrecy.

Niezgodność nazw certyfikatów SSL

Jeśli nazwa domeny nie zgadza się z wpisami w certyfikacie (Subject/SAN), pojawi się błąd. Do niezgodności dochodzi często w poniższych przypadkach:

  • witryna nie korzysta z SSL, ale dzieli adres IP z inną domeną mającą SSL,
  • domena kieruje na stary adres IP z innym serwisem,
  • używany jest CDN (np. Cloudflare) z błędnie skonfigurowanym SSL,
  • alias (CNAME) nie został dodany do certyfikatu w polu SAN.

Cloudflare Universal SSL nie obejmuje subdomen wielopoziomowych (np. api.staging.example.com) – wymagane są certyfikaty zaawansowane lub indywidualne.

Zaniedbana i nieprawidłowa konfiguracja Cloudflare

W środowiskach z Cloudflare problem pojawia się m.in. gdy certyfikat jest w statusie „Pending”, rekordy DNS są „DNS only”, certyfikat niestandardowy wygasł lub gdy potrzebne są certyfikaty dla subdomen wielopoziomowych. Rekordy wymagające ochrony muszą być oznaczone jako „Proxied”.

Przestarzała przeglądarka internetowa lub system operacyjny

Stare przeglądarki i systemy nie negocjują nowoczesnych protokołów i szyfrów. Chrome nie wspiera Windows XP, a starsze systemy serwerowe (np. Windows Server 2008) mogą mieć ograniczenia wsparcia TLS 1.2/1.3 niezależnie od używanej przeglądarki.

Mechanizm powstawania błędu i diagnostyka

Proces uzgadniania TLS i punkt awarii

Uzgadnianie rozpoczyna się od „Client Hello” z listą wspieranych wersji TLS i szyfrów, na co serwer odpowiada „Server Hello” z wyborem zgodnych ustawień.

Jeśli żadna wersja protokołu lub zestaw szyfrów nie jest wspólna, negocjacja kończy się błędem i połączenie jest zrywane.

Narzędzia diagnostyczne – SSL Labs

Do szybkiej diagnozy użyj bezpłatnego narzędzia Qualys SSL Labs (ssllabs.com). Oto, co sprawdzisz w raporcie:

  • obsługiwane wersje TLS i lista szyfrów,
  • ważność, łańcuch i dopasowanie certyfikatu (Subject/SAN),
  • wykryte słabości i przestarzałe protokoły/szyfry,
  • rekomendacje naprawcze i ocena końcowa.

Rozwiązania po stronie klienta – działania dla użytkowników

Najpierw wykonaj szybkie kroki, które najczęściej rozwiązują problem:

  • aktualizacja przeglądarki – zainstaluj najnowszą wersję, aby mieć wsparcie dla TLS 1.2/1.3 i aktualnych szyfrów;
  • czyszczenie cache i stanu SSL – usuń nieaktualne certyfikaty i dane przeglądania (cookies, cache);
  • wyłączenie QUIC/HTTP3 (testowo) – sprawdź, czy konflikt nie znika po czasowym wyłączeniu QUIC/HTTP3;
  • sprawdzenie oprogramowania zabezpieczającego – tymczasowo wyłącz skanowanie HTTPS/SSL w antywirusie lub module ochrony sieci;
  • weryfikacja ustawień systemu – włącz TLS 1.2/1.3, popraw datę i godzinę systemową.

Aktualizacja przeglądarki internetowej

Najskuteczniejszym pierwszym krokiem jest aktualizacja przeglądarki do najnowszej wersji. W Chrome: Menu → „Pomoc” → „O aplikacji Google Chrome”, następnie uruchom ponownie. W Firefox: Menu → „Pomoc” → „O programie Firefox”.

Wyczyszczenie pamięci podręcznej i stanu SSL

W Windows: „Opcje internetowe” → „Zawartość” → „Wyczyść stan SSL”. Dodatkowo wyczyść dane przeglądania (CTRL+SHIFT+DELETE) – pliki cookie i pamięć podręczną. W Firefox: Opcje → „Prywatność i bezpieczeństwo” → „Cookies i dane witryn” → „Wyczyść dane”.

Wyłączenie protokołu QUIC

Wyłącz QUIC wyłącznie testowo, aby wykluczyć konflikt: w Chrome wejdź na chrome://flags/#enable-quic i ustaw „Disabled”, w Firefox w about:config ustaw network.http.http3.enable na „false”.

Tymczasowe wyłączenie oprogramowania zabezpieczającego

Niektóre antywirusy przechwytują ruch HTTPS, wstrzykując własne certyfikaty. Wyłącz jedynie moduł skanowania SSL/HTTPS na czas testu i nie pozostawiaj ochrony wyłączonej na stałe.

Weryfikacja i korekta ustawień systemu operacyjnego

W starszych systemach Windows włącz TLS 1.2/1.3 w rejestrze:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols

Sprawdź wpisy DWORD: „Enabled” = 1 oraz „DisabledByDefault” = 0. Upewnij się, że data i godzina są poprawne – niewłaściwy czas powoduje błędy weryfikacji certyfikatu.

Rozwiązania po stronie serwera – działania dla administratorów i właścicieli witryn

Poniżej znajdziesz skrót kluczowych działań konfiguracyjnych na serwerze:

  • włącz tylko TLS 1.2/1.3 – wyłącz SSL 2.0/3.0 oraz TLS 1.0/1.1 w serwerze WWW lub systemie;
  • użyj bezpiecznych szyfrów – wyłącz RC4, wymuś zestawy oparte na ECDHE/DHE z PFS;
  • zweryfikuj certyfikat i SAN – dopasuj nazwy domen/subdomen, popraw łańcuch i ważność certyfikatu;
  • skonfiguruj Cloudflare – aktywuj Universal/Advanced/Total TLS, ustaw rekordy na „Proxied”;
  • przetestuj konfigurację – użyj SSL Labs i openssl s_client po każdej zmianie.

Aktualizacja wersji TLS na serwerze

Włącz wyłącznie TLS 1.2 i TLS 1.3, a wyłącz SSL 2.0/3.0 oraz TLS 1.0/1.1. Nginx: ssl_protocols TLSv1.2 TLSv1.3; Apache: SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1. W IIS dokonaj zmian w rejestrze lub politykach systemowych. Zrestartuj usługi WWW i zweryfikuj ustawienia.

Zastąpienie i konfiguracja bezpiecznych zestawów szyfrów

Wyłącz RC4 i włącz szyfry z ECDHE/DHE zapewniające perfect forward secrecy. Nginx: ssl_ciphers, Apache: SSLCipherSuite. Skorzystaj z Mozilla SSL Configuration Generator.

Weryfikacja i naprawa niezgodności nazw certyfikatów SSL

Certyfikat musi obejmować domenę główną i wszystkie subdomeny używane w ruchu. Główna nazwa w polu Subject, alternatywne w Subject Alternative Name (SAN). Jeśli czegoś brakuje, wygeneruj nowy certyfikat z kompletnym SAN.

Prawidłowa konfiguracja Cloudflare

Sprawdź w panelu (Edge Certificates), czy Universal Certificate jest aktywny, a rekordy wymagające ochrony są oznaczone jako „Proxied”. Dla subdomen wielopoziomowych rozważ Advanced Certificate lub Total TLS.

Dla jasnego porównania opcji certyfikatów Cloudflare zwróć uwagę na różnice:

Opcja Zakres pokrycia Dla kogo Uwagi
Universal SSL Domena + 1. poziom subdomen Większość witryn Brak wsparcia dla subdomen wielopoziomowych
Advanced Certificate Domena + wzorce subdomen (w tym wielopoziomowe) Witryny z złożoną strukturą DNS Płatna opcja z elastycznymi SAN/Wildcard
Total TLS Automatyczne certyfikaty per host Środowiska dynamiczne Automatyzuje wystawianie dla wielu hostów

Strategia prewencji i bieżąca konserwacja

Regularnie aktualizowane systemy i oprogramowanie

Aktualizacje to podstawa prewencji. Wdróż automatyczne aktualizacje systemów i oprogramowania serwerowego; egzekwuj polityki wymuszające nowoczesne wersje TLS i sukcesywne wycofywanie przestarzałych systemów.

Monitorowanie i testowanie certyfikatów SSL

Monitoruj daty wygaśnięcia, łańcuchy pośrednie i konfigurację SSL. Co najmniej raz na kwartał uruchom pełny test SSL Labs i przeanalizuj ocenę oraz zalecenia.

Automatyzacja odnowienia certyfikatów

Wdróż automatyczne odnowienia: dla Let’s Encrypt użyj certbota (np. z wtyczką DNS Cloudflare), w Kubernetes – cert-manager do rejestracji, odnowień i rotacji.

Zaawansowane problemy i przypadki brzegowe

Wielopoziomowe subdomeny w Cloudflare

Jeśli potrzebujesz obsługi subdomen wielopoziomowych, masz trzy praktyczne opcje:

  • zmień strukturę hostów na jednopoziomową (np. api-staging.example.com),
  • wykorzystaj Advanced Certificate lub Total TLS dla pełnego pokrycia,
  • oznacz rekord jako „DNS only”, akceptując brak funkcji bezpieczeństwa i wydajności.

Problemy z SNI (server name indication)

SNI pozwala obsługiwać wiele domen na jednym IP; jeśli nie jest aktywne lub skonfigurowane, serwer może zwrócić niewłaściwy certyfikat. Upewnij się, że SNI jest włączone i poprawnie przypisuje certyfikaty do hostów.