HTTPS

Szyfrowana wersja protokołu HTTP, która zabezpiecza dane między przeglądarką a serwerem za pomocą TLS. Chroni przed podsłuchem i podmianą treści.

HTTPS (HyperText Transfer Protocol Secure) to po prostu HTTP opakowane w warstwę szyfrującą TLS (dawniej SSL). Zamiast wysyłać żądania i odpowiedzi czystym tekstem, przeglądarka i serwer najpierw uzgadniają wspólny, szyfrowany kanał, a dopiero potem przez niego rozmawiają. Domyślnie chodzi po porcie 443 (zwykłe HTTP siedzi na 80). Dla użytkownika różnica to ta kłódka w pasku adresu i prefiks https:// — dla Ciebie jako programisty to gwarancja trzech rzeczy: poufności, integralności i uwierzytelnienia serwera.

Co właściwie daje TLS

TLS robi trzy zadania naraz. Szyfruje ruch, więc ktoś podsłuchujący sieć (np. na publicznym Wi-Fi) widzi tylko szum zamiast Twojego hasła. Pilnuje integralności — jeśli ktoś po drodze zmieni choć bajt, połączenie się sypie zamiast przepuścić zmanipulowane dane. I uwierzytelnia serwer przez certyfikat podpisany przez zaufane CA (Certificate Authority), żebyś rozmawiał z prawdziwym bankiem, a nie z podstawioną stroną.

Sam handshake (w TLS 1.3 ogarnięty w jednym round-tripie) ustala klucze sesyjne. Ciekawostka: certyfikat i asymetryczna kryptografia służą głównie do bezpiecznego wymienienia klucza — samą transmisję szyfruje już szybki algorytm symetryczny.

Z życia: jak to sprawdzić

Najprostszy darmowy certyfikat ogarniesz przez Let’s Encrypt i certbot. A jeśli chcesz podejrzeć, co serwer naprawdę zwraca, odpalasz:

  • curl -vI https://example.com — pokaże handshake i nagłówki,
  • openssl s_client -connect example.com:443 — wyrzuci pełny łańcuch certyfikatów i datę ważności.

Częste pułapki i mity

Mit: „kłódka = strona bezpieczna”. Nieprawda — kłódka znaczy tylko, że połączenie jest szyfrowane. Phishingowa strona też może mieć ważny certyfikat. HTTPS chroni kanał, nie intencje właściciela.

Na co uważać w praktyce: wygasłe certyfikaty (klasyk, który kładzie produkcję w weekend), mieszanie zasobów (mixed content — HTTPS-owa strona ładująca skrypt po HTTP), oraz brak nagłówka HSTS, który wymusza HTTPS i blokuje próby downgrade’u do gołego HTTP.

Pojęcia powiązane

TLS, SSL, certyfikat X.509, Let’s Encrypt, CA, HSTS, port 443, handshake, mixed content, HTTP/2.