DOMENY, DNS I SSL • 6 MIN READ

Rozwiązywanie problemów z SSL

Diagnostyka najczęstszych błędów SSL — wygasły cert, mixed content, błąd CA chain, pętla redirectu, fail przy wystawianiu Let's Encrypt. Komendy diagnostyczne i rozwiązania.

Zespół IQHost 14 maj 2026 6m read
#IQHost #domeny #hosting

SSL działa w 95% przypadków — ale gdy nie działa, błędy są kryptyczne i niejednoznaczne. „NET::ERR_CERT_AUTHORITY_INVALID", „SSL handshake failed", „Mixed content blocked". W tym poradniku przejdziemy przez najczęstsze problemy i konkretne rozwiązania.

Co zyskasz

  • Rozpoznasz po komunikacie błędu, co się stało.
  • Wykonasz diagnostykę z linii komend (openssl, curl).
  • Naprawisz typowe scenariusze: wygasły cert, niekompletny chain, mixed content.
  • Wiesz, kiedy zgłosić ticket do supportu IQHost.

Wymagania wstępne

  • Działający DirectAdmin dla Twojej domeny.
  • Opcjonalnie: dostęp do terminala (Linux/Mac) lub WSL na Windows.

Diagnostyka — komendy

Najpierw narzędzia, które każdy admin powinien znać:

# Sprawdź czy cert jest poprawny
openssl s_client -connect mojafirma.pl:443 -servername mojafirma.pl < /dev/null

# Skróconą wersję — tylko podstawowe info
echo | openssl s_client -connect mojafirma.pl:443 2>/dev/null | openssl x509 -noout -dates -subject -issuer

# Sprawdź chain (czy intermediate dołączone)
openssl s_client -connect mojafirma.pl:443 -servername mojafirma.pl -showcerts < /dev/null

# Test HTTPS z curl
curl -v https://mojafirma.pl 2>&1 | grep -i "ssl\|cert"

Online:

Wskazówka

Po każdej zmianie w konfiguracji SSL — czekaj 1-2 minuty na restart serwera, potem testuj. Cache przeglądarki też psuje — używaj incognito.

Problem 1: „NET::ERR_CERT_AUTHORITY_INVALID"

Co znaczy: Przeglądarka nie zna wystawcy certyfikatu — chain niekompletny lub samopodpisany.

Diagnostyka:

openssl s_client -connect mojafirma.pl:443 -showcerts < /dev/null | grep -E "issuer|subject"

Jeśli widzisz tylko Twój cert (bez intermediate) — chain niekompletny.

Rozwiązanie:

  1. Let's Encrypt: sprawdź czy DA poprawnie zainstalował chain. Certyfikaty SSL → przebudowanie (wystaw ponownie).
  2. Komercyjny cert: wgraj ponownie z pełnym CA bundle (intermediate + root). Patrz Wgrywanie własnego cert.

Problem 2: „NET::ERR_CERT_DATE_INVALID"

Co znaczy: Cert wygasł albo system użytkownika ma niewłaściwą datę.

Diagnostyka:

echo | openssl s_client -connect mojafirma.pl:443 2>/dev/null | openssl x509 -noout -dates
# notBefore=...
# notAfter=Dec  1 12:00:00 2025 GMT  ← czy data nie minęła?

Rozwiązanie:

  • Cert wygasł — odnów. Patrz Odnowienie SSL.
  • Cert „w przyszłości" — DA źle zegar serwera albo user źle ma zegar.
  • Cert wygasa za chwilę — wymuś odnowienie ręczne.

Problem 3: „NET::ERR_CERT_COMMON_NAME_INVALID"

Co znaczy: Cert wystawiony na inną domenę niż ta w przeglądarce.

Najczęstsza sytuacja: wpisałeś https://mojafirma.pl, ale cert pokrywa tylko *.mojafirma.pl (subdomeny). Albo cert na iqhost.pl, a strona na dev.iqhost.pl (brak SAN).

Diagnostyka:

echo | openssl s_client -connect mojafirma.pl:443 2>/dev/null | openssl x509 -noout -text | grep -E "Subject:|DNS:"

Sprawdź pole Subject: (CN) i DNS: (SAN). Czy Twoja domena jest na liście?

Rozwiązanie:

  • Wystaw nowy cert z poprawną listą hostów (DA → Certyfikaty SSL → wpisz wszystkie potrzebne domeny).

Problem 4: Mixed content — kłódka z wykrzyknikiem

Co znaczy: Strona ładowana po HTTPS, ale niektóre zasoby (obrazki, JS, CSS) przez HTTP. Przeglądarka oznacza jako niezabezpieczone.

Diagnostyka:

  • F12 → Console → szukaj „Mixed Content" warnings
  • whynopadlock.com — automat

Typowe źródła:

  1. Hardcodowane URL-e w CMS/sklepiehttp://mojafirma.pl/wp-content/...
  2. Linki do CDN po HTTP — np. fonty z http://fonts.googleapis.com/...
  3. Iframe z zewnętrznej strony po HTTP

Rozwiązanie:

  • WordPress: plugin Better Search Replace → zamień wszystkie http://mojafirma.pl na https://mojafirma.pl w bazie
  • Ręczne: edytuj kod, zmień http: na https: (lub na // — protocol-relative URL działa w obu)
  • Cloudflare: włącz Always Use HTTPS + Automatic HTTPS Rewrites

Problem 5: Pętla redirectu (Too many redirects)

Co znaczy: Strona przekierowuje w kółko HTTP↔HTTPS.

Typowa przyczyna: Cloudflare na Flexible SSL + serwer wymusza HTTPS przez .htaccess.

User → HTTPS → Cloudflare → HTTP → Twój serwer → 301 do HTTPS → Cloudflare → HTTP → ...

Rozwiązanie:

  • W Cloudflare → SSL/TLS → ustaw Full lub Full (strict) (zamiast Flexible)
  • Lub: tymczasowo wyłącz redirect w .htaccess i sprawdź czy strona działa po HTTPS przez Cloudflare

Problem 6: Let's Encrypt — „Failed to obtain certificate"

Diagnostyka: w komunikacie błędu DA szukaj fragmentu:

  • „unauthorized" — domena nie wskazuje na nasz serwer
  • „timeout" — Let's Encrypt nie mógł połączyć się z /.well-known/acme-challenge/
  • „rateLimited" — przekroczone limity Let's Encrypt
  • „dns problem" — wildcard challenge zawiódł

Rozwiązania:

Błąd Rozwiązanie
unauthorized dig +short mojafirma.pl — sprawdź czy IP wskazuje na nas. Jeśli nie — popraw rekord A.
timeout Sprawdź .htaccess — czy nie blokuje /.well-known/. Niektóre WAF blokują.
rateLimited Poczekaj 1-7 dni. Limity Let's Encrypt: 50 certów/domena/tydzień.
dns problem Dla wildcard — sprawdź czy NS-y są IQHost (dig +short NS mojafirma.pl).

Problem 7: Cert poprawny, ale strona „SSL handshake failed"

Co znaczy: Klient nie obsługuje protokołów/ciphersów wymaganych przez serwer.

Diagnostyka:

# Sprawdź jakie protokoły akceptuje serwer
nmap --script ssl-enum-ciphers -p 443 mojafirma.pl

# Z openssl
openssl s_client -connect mojafirma.pl:443 -tls1_2 < /dev/null  # TLS 1.2
openssl s_client -connect mojafirma.pl:443 -tls1_3 < /dev/null  # TLS 1.3

Rozwiązanie:

  • Bardzo starzy klienci (XP, IE6) nie obsługują nowoczesnego TLS. Nie da się ich uszczęśliwić bez obniżania bezpieczeństwa.
  • Nowoczesne klienty (przeglądarki od 2020+) działają OK.

Problem 8: Brak HTTPS na subdomenie (główna działa)

Diagnostyka:

curl -v https://blog.mojafirma.pl 2>&1 | grep -i cert

Najczęściej: cert pokrywa tylko mojafirma.pl (bez wildcard), subdomena nie jest w SAN.

Rozwiązanie:

  1. Wystaw cert z subdomeną w liście hostów:
    mojafirma.pl
    www.mojafirma.pl
    blog.mojafirma.pl
    
  2. Albo wildcard *.mojafirma.pl

Patrz Let's Encrypt step 3.

Problem 9: Cert kosztuje, chcę darmowy

Let's Encrypt zastępuje praktycznie każdy DV cert (Domain Validation). Nie zastąpi OV/EV (Organization/Extended) — wymagane dla niektórych banków, gov.

Dla większości stron komercyjnych: Let's Encrypt = darmowy i wystarczający. Patrz Let's Encrypt.

Problem 10: SSL Labs Grade C lub niżej

Diagnostyka: ssllabs.com/ssltest → zobacz „Configuration".

Typowe powody niskiej oceny:

  • Wsparcie TLS 1.0/1.1 (przestarzałe) — wyłącz, zostaw TLS 1.2+
  • Słabe ciphersy (RC4, 3DES) — wyłącz
  • Brak HSTS — włącz. Patrz Wymuszanie HTTPS
  • Klucz 1024-bit — wystaw nowy z 2048+
  • Brak Forward Secrecy — włącz cipher suites z DHE/ECDHE

Konfiguracja TLS odbywa się na poziomie serwera — w DA większość ustawień jest standardowa. Jeśli chcesz tunować ręcznie, zgłoś ticket do supportu IQHost.

Kiedy zgłosić ticket do supportu

Załóż zgłoszenie, gdy:

  • Wystawienie cert zwraca błędy serwera (500, 503)
  • Cert wygląda OK, ale ssllabs zwraca błąd „Connection failed"
  • Konflikty między domenami (cert dla jednej kradnie HTTPS innej)
  • Pliki cert i klucz są poprawne (przeszły MD5 test), ale DA nie chce wgrać
  • Po naszych zmianach SSL nadal nie działa po 1h propagacji

W zgłoszeniu podaj: nazwa domeny, treść błędu z DA, kroki które wykonałeś.

Najczęstsze pytania

„Cert wygasł 5 min temu, strona już nie działa — naprawa pilna"

  1. Wymuś odnowienie (Certyfikaty SSL → Ponów)
  2. Jeśli nie pomaga — wystaw nowy (radio button → ZAPISZ)
  3. W trakcie czekania: poinformuj klientów, że strona w awarii

„Po wgraniu własnego cert strona dla głównej domeny działa, dla www. nie"

Cert nie ma www.mojafirma.pl w SAN. Wystaw nowy z obiema domenami.

„Czy Let's Encrypt śledzi moją stronę?"

Nie — Let's Encrypt to fundacja non-profit. Nie zbiera danych z Twojej strony. Tylko widzi że Twój serwer odpowiada na challenge przy wystawianiu.

„Czy mogę używać Let's Encrypt do pożyczonej domeny?"

Jeśli kontrolujesz DNS lub HTTP tej domeny — tak. Let's Encrypt nie sprawdza własności prawnej, tylko techniczną kontrolę.

Słowniczek

  • TLS — Transport Layer Security, następca SSL. Wszystkie nowoczesne HTTPS to TLS 1.2+ lub 1.3.
  • Cipher suite — kombinacja algorytmów używanych w jednej sesji TLS.
  • HSTS — HTTP Strict Transport Security. Wymusza HTTPS w przeglądarce.
  • Mixed content — strona HTTPS ładująca zasoby HTTP.
  • Forward Secrecy (PFS) — właściwość, że nawet jak ktoś ukradnie klucz, nie odszyfruje historii.
  • OCSP stapling — optymalizacja sprawdzania revocation list. Konfigurowana na serwerze.

Related

Pełna strona Certyfikaty SSL z tabelą aktualnych certyfikatów

Feedback

Czy ten artykuł pomógł?

Potwierdź