Zkratka proHypertext Transfer Protocol SecureTakéHTTP over TLS, HTTP SecureZákladní

Definice

HTTPS je zabezpečená varianta protokolu HTTP, která přenáší webovou komunikaci přes TLS a tím šifruje obsah, ověřuje identitu serveru a chrání data před úpravou po cestě. Používá se u webů, API i aplikací, kde prohlížeč nebo klient potřebuje důvěryhodné spojení se serverem.

Kategorie: Webové technologieAktualizováno

Co HTTPS přidává k HTTP

HTTPS zachovává význam požadavků a odpovědí HTTP, ale vkládá mezi aplikaci a síť šifrovanou vrstvu TLS. Prohlížeč proto neposílá URL cestu, hlavičky, cookies ani tělo formuláře jako čitelný text pro každý směrovač po cestě. HTTPS zároveň kontroluje, že přijatá data nebyla během přenosu změněna, a že server předkládá certifikát platný pro dané doménové jméno.

HTTPS není samostatný jazyk pro web. Rozdíl je ve schématu adresy https://, v použití portu obvykle vyhrazeného pro šifrovaný provoz a hlavně v navázání TLS spojení před samotným HTTP požadavkem. Po úspěšném handshake může nad stejným zabezpečeným kanálem běžet HTTP/1.1, HTTP/2 nebo jiná dohodnutá varianta.

Co se při navázání spojení ověřuje

Klient při připojení dostane od serveru certifikát a porovná v něm doménu s adresou, kterou uživatel otevřel. Klient také zkontroluje platnost certifikátu a řetězec důvěry vůči certifikační autoritě, kterou operační systém nebo prohlížeč uznává. Teprve potom si obě strany odvodí klíče pro šifrování konkrétní relace.

Serverový certifikát potvrzuje kontrolu nad jménem, ne morální kvalitu provozovatele. HTTPS tedy brání odposlechu a podvržení spojení, ale samo nerozezná podvodný obchod, špatně napsanou aplikaci nebo uniklé heslo. V citlivých systémech se někdy přidává i klientský certifikát, aby server ověřil také klienta.

Kde HTTPS končí v reálné infrastruktuře

HTTPS často nekončí přímo v aplikačním serveru. TLS může ukončit load balancer, CDN, reverse proxy nebo Kubernetes ingress. Za tímto bodem může provoz pokračovat interně jako HTTP, nebo se znovu šifrovat směrem k backendu. Důležité je vědět, kde leží hranice důvěry, kdo vidí nešifrovaná data a které logy mohou obsahovat citlivé údaje.

Aplikace za proxy musí správně rozpoznat původní schéma požadavku. Chybná konfigurace hlaviček typu X-Forwarded-Proto vede k absolutním odkazům s http://, k nesprávnému nastavení cookies nebo k nekonečným přesměrováním. Produkční proxy by měla předávat tyto informace jen z důvěryhodné vnitřní vrstvy.

Co HTTPS neřeší

HTTPS neopraví zranitelnost v aplikaci. SQL injection, XSS, slabé heslo, špatná autorizace nebo únik tokenu zůstávají problémem i na zeleném zámečku. HTTPS také běžně neskryje samotnou IP adresu cílového serveru a podle konfigurace může být částečně viditelné i jméno hostitele použité při navázání spojení.

Praktické situace s HTTPS

Přesměrování starých adres na bezpečnou variantu

E-shop po migraci ponechá staré odkazy s http://, protože je mají zákazníci v záložkách a vyhledávače v indexu. Server vrátí trvalé přesměrování na HTTPS a teprve zabezpečená odpověď nastaví cookies se značkou Secure. První nezabezpečený požadavek stále existuje, proto se po ověření nasazuje HSTS.

server {
  listen 80;
  server_name example.com;
  return 301 https://example.com$request_uri;
}

API za reverzní proxy

Mobilní aplikace volá API přes HTTPS, ale TLS končí na reverzní proxy před aplikačním serverem. Backend vidí lokální HTTP požadavek a při špatné konfiguraci vygeneruje odkaz pro reset hesla s nezabezpečeným schématem. Správné nastavení důvěryhodných forwarded hlaviček zajistí, že aplikace pozná původní veřejnou adresu.

Proč prohlížeč HTTPS někdy odmítne

Prohlížeč zobrazí varování, když certifikát vypršel, nepatří dané doméně, používá nedůvěryhodnou autoritu nebo je stránka složená z nebezpečných prvků načtených přes HTTP. Vývojové self-signed certifikáty patří do lokálního prostředí, ne před běžné uživatele. Ignorování varování v produkci ruší hlavní bezpečnostní přínos HTTPS.

Příklady z praxe

  1. Přesměrování e-shopu na HTTPS

    Správce e-shopu po nasazení nového certifikátu zjistil, že zákazníkům při platbě mizí přihlášení, protože cookies nebyly označené jako Secure a část provozu stále přicházela přes HTTP. Nastavil trvalé přesměrování na HTTPS, upravil atributy cookies a po kontrole v prohlížeči se přihlašovací relace při platbě přestaly ztrácet.

  2. HTTPS ukončené na load balanceru

    Tým provozující interní API za load balancerem řešil nekonečná přesměrování mezi HTTP a HTTPS, protože aplikace za proxy nerozpoznala původní zabezpečené schéma požadavku. Administrátor povolil důvěryhodné proxy hlavičky jen z vnitřní sítě, aplikace začala správně číst X-Forwarded-Proto a klientské aplikace se k API znovu připojovaly bez chyb.

Časté omyly

MýtusHTTPS znamená, že je web bezpečný.
Ve skutečnostiHTTPS zajišťuje bezpečnější přenos dat mezi klientem a serverem. Web ale může mít zranitelnou aplikaci, podvodný obsah, slabé ověřování nebo špatně chráněnou databázi.
MýtusCertifikát musí být drahý, jinak není HTTPS důvěryhodné.
Ve skutečnostiDůvěryhodnost HTTPS nezávisí na ceně certifikátu. Klíčové je, zda certifikát odpovídá doméně, je platný a jeho řetězec vede k autoritě, které klient důvěřuje.

Časté dotazy

Proč prohlížeč označí HTTPS stránku jako nedůvěryhodnou?
Prohlížeč označí HTTPS stránku jako nedůvěryhodnou hlavně tehdy, když nedokáže ověřit certifikát serveru. Typické příčiny jsou prošlá platnost, certifikát vystavený pro jinou doménu, chybějící mezilehlý certifikát nebo autorita, které klient nevěří. Varování může vyvolat také pokus o útok mezi klientem a serverem. V produkci se takové hlášení nemá obcházet, ale opravit na straně certifikátu, domény nebo konfigurace serveru.
Stačí pro přihlašování jen HTTPS?
HTTPS je pro přihlašování nutný základ, ale samotné HTTPS nestačí. Přihlašovací systém potřebuje také bezpečné ukládání hesel, ochranu proti hrubé síle, správně nastavené cookies, CSRF ochranu tam, kde dává smysl, a bezpečné obnovení hesla. HTTPS chrání přenos přihlašovacích údajů mezi klientem a serverem. HTTPS ale nezabrání tomu, aby útočník využil chybu v aplikaci nebo ukradený session token.
Má HTTPS vliv na výkon webu?
HTTPS může přidat práci při navázání spojení, protože klient a server musí provést TLS handshake. U běžných webů ale moderní TLS, opakované použití spojení, HTTP/2 a cache dopad výrazně snižují. Praktický výkon často víc ovlivní velikost JavaScriptu, obrázky, databáze nebo latence backendu. HTTPS se proto dnes bere jako standardní součást webu, ne jako volitelná brzda výkonu.
Kdy dává smysl zapnout HSTS u HTTPS?
HSTS dává u HTTPS smysl ve chvíli, kdy doména dlouhodobě funguje výhradně přes zabezpečené spojení a všechny důležité subdomény jsou připravené. HSTS říká prohlížeči, aby příště nepoužil nezabezpečené HTTP ani při ručně zadané adrese. Chybné nebo předčasné zapnutí může odříznout staré subdomény bez platného certifikátu, proto se obvykle začíná kratší dobou platnosti a pečlivým testem.

Zdroje

  1. HTTP Semantics(otevře se v novém okně)RFC Editor, 2022
  2. The Transport Layer Security (TLS) Protocol Version 1.3(otevře se v novém okně)RFC Editor, 2018
  3. HTTP Strict Transport Security (HSTS)(otevře se v novém okně)RFC Editor, 2012
  4. HTTPS(otevře se v novém okně)MDN Web Docs

Související pojmy

Potřebujete to vyřešit v praxi?

Poradíme, jak na to ve vašem projektu

Vysvětlit pojem je jedna věc, navrhnout kolem něj funkční řešení druhá. Ozvěte se a probereme, co dává smysl u vás.