Co sprawdza ten test?
KernelHost SSL Checker pobiera certyfikat serwera przez handshake TLS z naszego węzła we Frankfurcie i pokazuje najważniejsze pola, bez wywołań do podmiotów trzecich. Co jest sprawdzane i wyświetlane:
- Wystawiony dla i przez: Common Name (Subject CN), pełny Subject DN i Issuer (która CA podpisała certyfikat).
- Okres ważności: Data początkowa i końcowa w UTC plus pozostałe dni. Kod kolorów: zielony (>30 dni), pomarańczowy (7 do 30 dni), czerwony (poniżej 7 dni lub już wygasły).
- Subject Alternative Names (SANs): Pełna lista hostname objętych certyfikatem, w tym wpisy wildcard.
- Zgodność hostname: Sprawdza, czy wpisana domena jest faktycznie objęta przez Common Name lub SAN wildcard (RFC 6125).
- Klucz i podpis: Algorytm klucza publicznego (RSA, ECDSA), rozmiar klucza w bitach lub nazwa krzywej oraz algorytm podpisu.
- Fingerprint i numer seryjny: Fingerprint SHA-256 i SHA-1 certyfikatu zakodowanego w DER plus szesnastkowy numer seryjny.
- Pełny łańcuch: Wszystkie certyfikaty dostarczone przez serwer podczas handshake, z subject, issuer i rolą (leaf, intermediate, root).
Częste błędy SSL i co oznaczają
Przeglądarki często pokazują kryptyczne błędy w stylu NET::ERR_CERT_DATE_INVALID lub SSL_ERROR_BAD_CERT_DOMAIN. Oto najczęstsze przyczyny i sposoby naprawy:
- Certyfikat wygasł: Data notAfter jest w przeszłości. Przeglądarki blokują stronę całkowicie. Rozwiązanie: odnowić certyfikat. W Let's Encrypt dzieje się to automatycznie co 60 dni przez certbot lub acme.sh.
- Niezgodny hostname: Hostname nie występuje ani w Common Name, ani w żadnym SAN. Rozwiązanie: przy ponownym wystawianiu dodać każdą potrzebną domenę i subdomenę jako SAN.
- Self-signed lub nieznana CA: Issuer nie jest zaufaną root CA. Przeglądarki pokazują NET::ERR_CERT_AUTHORITY_INVALID. Rozwiązanie: pobrać certyfikat od uznanej CA jak Let's Encrypt, ZeroSSL, Sectigo lub DigiCert.
- Niekompletny łańcuch: Serwer wysyła tylko leaf-certyfikat, bez pośrednich. Mobilne przeglądarki i starsze urządzenia padają. Rozwiązanie: skonfigurować full chain (fullchain.pem) na serwerze WWW.
- Słaby klucz lub słaby podpis: RSA poniżej 2048 bitów lub podpisy SHA-1 nie są już akceptowane. Rozwiązanie: ponownie wystawić z RSA 2048+ lub ECDSA P-256.
- Mixed content i pułapka HSTS: Jeśli wcześniej wysłano poprawny nagłówek HSTS, a certyfikat potem wygaśnie, odwiedzający nie mogą obejść ostrzeżenia. Działanie natychmiastowe: odnowić certyfikat; w sytuacji awaryjnej zmniejszyć HSTS max-age.
Let's Encrypt a certyfikaty komercyjne
Let's Encrypt to bezpłatna, zautomatyzowana CA prowadzona przez ISRG. Certyfikaty są technicznie identyczne z komercyjnymi DV i uznawane jako zaufane przez wszystkie nowoczesne przeglądarki.
Kiedy płatny certyfikat ma sens? Tak naprawdę tylko w wyjątkowych przypadkach:
- Extended Validation (EV): Kiedyś pokazywał zielony pasek adresu, dziś wizualnie ledwie zauważalny. Sens ma tylko dla banków lub platform tradingowych, gdy wymaga tego prawo.
- Wildcard bez DNS challenge: Let's Encrypt obsługuje wildcardy tylko przez challenge DNS-01. Bez dostępu API do DNS, ZeroSSL Premium lub Sectigo to alternatywy.
- Gwarancja i ubezpieczenie: Komercyjne CA oferują kwoty ubezpieczenia w razie mis-issuance. W praktyce rzadko istotne, ale niektóre frameworki compliance tego wymagają.
W KernelHost Webhosting i cPanel integracja z Let's Encrypt jest bezpłatnie wbudowana i zautomatyzowana. Certyfikaty są odnawiane co 60 dni przez AutoSSL bez Twojej ingerencji. Certyfikaty wildcard przez DNS challenge są również możliwe, gdy domena znajduje się na DNS KernelHost.
TLS 1.2 a TLS 1.3
TLS 1.2 jest standardem od 2008 roku, TLS 1.3 został opublikowany jako RFC 8446 w 2018 roku i jest szeroko wdrażany od 2020 roku. Starsze wersje (SSL 3.0, TLS 1.0, TLS 1.1) są niebezpieczne i powinny być wyłączone w konfiguracji serwera.
Co TLS 1.3 robi lepiej:
- Szybszy handshake: 1-RTT zamiast 2-RTT, plus opcjonalne 0-RTT przy wznowieniu. Zauważalnie szybciej na stronach z dużym TLS.
- Czystszy zestaw cipher: Tylko 5 dozwolonych AEAD cipher suites. Brak wymiany kluczy RSA; zawsze forward secrecy.
- Szyfrowany handshake: Sam certyfikat serwera jest przesyłany w postaci szyfrowanej. Z ESNI/ECH nawet SNI pozostaje prywatne.
- Wstecznie kompatybilny: Serwery mogą oferować TLS 1.2 i 1.3 równolegle. Przeglądarki automatycznie negocjują najwyższą wspólną wersję.
Co oznacza wygasły certyfikat?
Wygasły certyfikat SSL oznacza konkretnie: przeglądarki pokazują pełnoekranowe ostrzeżenie i blokują stronę. W większości przypadków odwiedzający nie mogą tego obejść, zwłaszcza przy aktywnym nagłówku HSTS.
Konsekwencje dla operatora:
- Strata rankingu w Google (HTTPS to czynnik rankingowy i sygnały zaufania są oceniane).
- Serwery pocztowe (MX/SMTP z STARTTLS) odmawiają przyjęcia połączeń przychodzących; maile bouncują lub są dostarczane z opóźnieniem.
- Klienci API i aplikacje mobilne z certificate pinning psują się i mogą wymagać aktualizacji.
HSTS, CAA i OCSP stapling
Ważny certyfikat to dopiero początek. Trzy dodatkowe mechanizmy podnoszą bezpieczeństwo TLS do poziomu best practice:
- HSTS (HTTP Strict Transport Security): Nagłówek zmuszający przeglądarki do używania wyłącznie HTTPS od teraz. Zalecane: max-age=63072000; includeSubDomains; preload (dwa lata, wszystkie subdomeny, lista preload). Ostrożnie przy aktywacji: błędna konfiguracja jest nieodwracalna, dopóki działa max-age.
- CAA (Certification Authority Authorization): Wpis DNS, który definiuje, które CAs mogą wystawiać certyfikaty dla Twojej domeny. Przykład: 'kernelhost.com. CAA 0 issue "letsencrypt.org"' zapobiega mis-issuance przez inne CAs.
- OCSP stapling: Serwer WWW dostarcza odpowiedź o statusie odwołania od CA, zamiast aby każda przeglądarka pytała CA osobno. Szybciej dla odwiedzających i odciąża infrastrukturę CA. Apache: SSLUseStapling On, nginx: ssl_stapling on.
Prywatność
KernelHost SSL Checker działa w całości w naszym węźle we Frankfurcie bez wywołań do podmiotów trzecich:
- Brak przekazywania Twojej wpisanej wartości do zewnętrznych API (brak SSL Labs, brak Hardenize, brak Cryptomon).
- Brak przechowywania sprawdzanej domeny ponad standardowe logowanie żądań (log serwera WWW, retencja 14 dni).
- Filtr anty-SSRF blokuje żądania do prywatnych zakresów IP, loopback i link-local.
- Rate-limit per IP przeciw nadużyciom. Opcjonalnie hCaptcha przy wysyłce.