certyfikat SSL/TLS
| Po angielsku | SSL/TLS certificate |
|---|---|
| Którą formą pisać | po polsku Polska nazwa przyjęła się w tekstach i w wyszukiwarce — używaj jej samodzielnie. |
| Inne formy | certyfikat SSL · certyfikat TLS · certyfikat HTTPS |
| Kategoria | Strony WWW, WordPress i hosting |
Certyfikat SSL/TLS to podpisany cyfrowo dokument, który wiąże klucz publiczny serwera z nazwą domeny i pozwala przeglądarce nawiązać szyfrowane połączenie HTTPS. RFC 5280 opisuje certyfikaty klucza publicznego jako struktury danych wiążące wartości kluczy publicznych z podmiotami; powiązanie potwierdza zaufany urząd certyfikacji, podpisując każdy certyfikat [1]. Certyfikat ma ograniczony okres ważności, zapisany w jego podpisanej treści [1]. Chroni dane w drodze między przeglądarką a serwerem, ale nie zabezpiecza samej strony przed włamaniem.
Jak działa
Certyfikat jest szczególnym przypadkiem, który opisuje hasło certyfikat cyfrowy, i opiera się na kryptografii asymetrycznej. Właściciel strony generuje parę kluczy. Klucz prywatny zostaje na serwerze, a klucz publiczny trafia do certyfikatu, który podpisuje urząd certyfikacji (CA). Przeglądarka ufa certyfikatowi, jeśli potrafi zbudować łańcuch podpisów do urzędu, któremu ufa system. Całość tworzy infrastrukturę klucza publicznego (PKI).
Certyfikat wykorzystuje protokół TLS. RFC 8446, opublikowany w sierpniu 2018 roku, definiuje wersję 1.3 i opisuje TLS jako protokół zaprojektowany, by zapobiegać podsłuchowi, manipulacji i fałszowaniu wiadomości [2]. Według tego dokumentu strona serwera jest zawsze uwierzytelniona, a dane po zestawieniu kanału widzą tylko jego końce [2]. Za tę pierwszą właściwość odpowiada właśnie certyfikat: dowodzi, że serwer posiada klucz prywatny pasujący do domeny.
Nazwa „SSL” jest historyczna. CERT Polska zaleca wyłączenie obsługi SSL 2.0, SSL 3.0, TLS 1.0 i TLS 1.1 oraz dopuszczenie wyłącznie TLS 1.2 i TLS 1.3 [3]. Ten sam certyfikat działa z każdą z tych wersji; o wersji protokołu decyduje konfiguracja serwera.
Życie certyfikatu to cykl, który powtarza się przy każdym odnowieniu.
Rodzaje
Certyfikaty różnią się tym, co urząd sprawdza przed wydaniem. Let's Encrypt wydaje wyłącznie certyfikaty z weryfikacją domeny (DV) i nie oferuje certyfikatów OV ani EV, bo ich wydawania nie da się zautomatyzować [4].
| Rodzaj | Co sprawdza urząd | Uwagi |
|---|---|---|
| DV (Domain Validation) | kontrolę nad domeną | wydawany automatycznie [4] |
| OV (Organization Validation) | także organizację | brak w Let's Encrypt [4] |
| EV (Extended Validation) | rozszerzoną weryfikację organizacji | brak w Let's Encrypt [4] |
| Wildcard | domenę i jej poddomeny | w Let's Encrypt tylko przez wyzwanie DNS-01 [4] |
Rodzaj certyfikatu nie zmienia siły szyfrowania. CERT Polska zaleca klucze RSA o długości co najmniej 2048 bitów albo klucze ECDSA o długości co najmniej 256 bitów [3].
W WordPressie
Certyfikat instaluje się na serwerze albo w panelu hostingu, nie w WordPressie. WordPress musi jednak wiedzieć, że ma działać pod adresem https://. Stała FORCE_SSL_ADMIN w pliku wp-config.php wymusza, by wszystkie logowania i sesje administracyjne szły przez SSL [7].
// wp-config.php
define( 'FORCE_SSL_ADMIN', true );
Od wersji 5.7 ekran Stan witryny wykrywa, czy serwer obsługuje HTTPS, i pokazuje przycisk, który jednym kliknięciem przestawia oba adresy witryny na HTTPS [8]. Ta sama wersja dodała funkcję, która w locie zamienia niezabezpieczone adresy własnej strony w treści [8]. Stare odnośniki http:// w bazie są typowym źródłem problemu, który opisuje hasło mixed content. Po przejściu na HTTPS warto dodać nagłówek HSTS; CERT Polska opisuje go jako informację dla przeglądarki, że z domeną wolno łączyć się wyłącznie przez HTTPS [3].
Zagrożenia i skutki
Brak certyfikatu oznacza, że hasła, ciasteczka sesji i dane formularzy idą otwartym tekstem. Każdy na drodze pakietów może je odczytać albo zmienić, co opisuje hasło man-in-the-middle (MITM). Wygasły certyfikat daje podobny skutek praktyczny: przeglądarka pokazuje ostrzeżenie, a użytkownicy uczą się je ignorować.
Certyfikat nie jest jednak dowodem, że strona jest bezpieczna albo uczciwa. Niebezpiecznik przypomina, że kłódka oznacza tylko tyle, że ruch do strony jest szyfrowany [6]. Ponieważ dzięki Let's Encrypt każdy może szyfrować ruch do swojej strony za darmo [6], certyfikat ma też strona, którą przygotował phishing. Radą jest najpierw sprawdzać domenę [6]. Certyfikat nie chroni też przed włamaniem przez podatność we wtyczce: szyfruje drogę, nie sprawdza treści.
Dobre praktyki
- Automatyzować wydawanie i odnawianie. CERT Polska zaleca protokół ACME do automatycznego pozyskiwania i odnawiania certyfikatów oraz powiadomienia o zbliżającym się wygaśnięciu z wyprzedzeniem kilkunastu dni [3].
- Odnawiać z zapasem. Certyfikaty Let's Encrypt są domyślnie ważne 90 dni, a Let's Encrypt zaleca odnawianie co 60 dni; dostępne są też certyfikaty krótkotrwałe, ważne sześć dni [4].
- Przygotować się na krótsze okresy ważności. 11 kwietnia 2025 roku CA/Browser Forum przyjęło głosowanie SC081v3, które stopniowo skraca maksymalny okres ważności certyfikatów z 398 do 47 dni [5]. Redukcje zaplanowano od marca 2026 roku do marca 2029 roku [5].
- Chronić klucz prywatny jak hasło: klucz kryptograficzny wykradziony z serwera pozwala podszyć się pod stronę aż do unieważnienia certyfikatu.
- Wyłączyć stare wersje protokołu i dopuścić tylko TLS 1.2 i 1.3 [3].
Historia i przykłady
Darmowe certyfikaty. Let's Encrypt to bezpłatny, zautomatyzowany i otwarty urząd certyfikacji prowadzony przez organizację non-profit Internet Security Research Group (ISRG) [4]. Niebezpiecznik w lipcu 2021 roku zwrócił uwagę na skutek uboczny tej zmiany: dawniej mało która złośliwa strona miała certyfikat, bo certyfikaty kosztowały, a dziś każdy może szyfrować ruch do swojej strony za darmo [6]. Jako przykład podał oszustwa na platformach ogłoszeniowych, w których fałszywe strony płatności mają ważny certyfikat, a różnią się od prawdziwych nazwą domeny [6].
Skracanie ważności. Głosowanie SC081v3 w CA/Browser Forum zakończyło się 11 kwietnia 2025 roku poparciem 25 wystawców certyfikatów i wszystkich 4 głosujących konsumentów certyfikatów (producentów przeglądarek) [5]. Dla właściciela strony oznacza to, że ręczne odnawianie certyfikatu raz na rok przestaje być realną praktyką i zostaje automatyzacja przez ACME [3].
Przypisy
8- [1] RFC 5280: Internet X.509 Public Key Infrastructure Certificate and CRL Profile · IETF
- [2] RFC 8446: The Transport Layer Security (TLS) Protocol Version 1.3 · IETF
- [3] Bezpieczna konfiguracja TLS · CERT Polska
- [4] Frequently Asked Questions (FAQ) · Let's Encrypt
- [5] Ballot SC081v3: Introduce Schedule of Reducing Validity and Data Reuse Periods · CA/Browser Forum
- [6] Przestań sprawdzać, czy strony mają kłódki · Niebezpiecznik
- [7] HTTPS — Security · WordPress.org
- [8] Improved HTTPS detection and migration in WordPress 5.7 · Make WordPress Core
Hasła w tym artykule
11Linkują tutaj
30- szyfrowanie
- klucz kryptograficzny
- TLS
- mixed content
- HSTS (HTTP Strict Transport Security)
- flagi ciasteczek
- nagłówki bezpieczeństwa HTTP
- urząd certyfikacji
- pharming
- subdomain takeover
- atak homograficzny
- man-in-the-middle (MITM)
- HSM
- BGP hijacking
- kryptografia postkwantowa
- FIDO2 / WebAuthn
- certyfikat cyfrowy
- forward secrecy
- rotacja kluczy
- szyfrowanie end-to-end (E2EE)
- oszustwo z kodem QR
- CERT Polska / CSIRT NASK, CSIRT GOV, CSIRT MON
- evil twin (podstawiona sieć Wi-Fi)
- infrastruktura klucza publicznego
- oszustwo na OLX / Vinted (fałszywy sklep internetowy)
- DNS cache poisoning
- DNSSEC
- OSINT
- zarządzanie powierzchnią ataku
- rządowy trojan (komercyjne oprogramowanie szpiegujące)