HSTS: vynútené HTTPS pripojenie
HSTS: čo je HTTP Strict Transport Security a prečo ho aktivovať
HSTS (HTTP Strict Transport Security) je bezpečnostný mechanizmus definovaný v RFC 6797, ktorý núti prehliadače používať pre danú doménu výlučne protokol HTTPS. Server odošle hlavičku Strict-Transport-Security s parametrami, podľa ktorých si prehliadač zapamätá politiku a následne automaticky prepisuje všetky budúce pokusy o pripojenie cez HTTP na HTTPS. Výsledkom je odolnosť voči útokom typu SSL stripping, konzistentné šifrovanie a menšie riziko úniku citlivých údajov.
Mechanizmus fungovania: od prvej návštevy po „preload“
- Prvá bezpečná návšteva: Používateľ sa pripojí na
https://a server odošleStrict-Transport-Security. Prehliadač si politiku uloží na dobu určenúmax-age. - Vynútenie HTTPS: Počas platnosti politiky prehliadač všetky pokusy o HTTP (vrátane klikov na
http://odkazy a priameho zadania) automaticky premapuje na HTTPS ešte pred odoslaním požiadavky. - HSTS Preload zoznam: Ak je doména zapísaná v tzv. preload liste, prehliadač bude vyžadovať HTTPS už pri úplne prvej návšteve (bez potreby predchádzajúcej bezpečnej odpovede).
Direktívy HSTS: max-age, includeSubDomains, preload
max-age=<sekundy>– povinné; určuje dĺžku platnosti politiky. Bežné hodnoty:max-age=31536000(1 rok).includeSubDomains– voliteľné; rozširuje politiku na všetky subdomény (napr.www,api,img).preload– voliteľné; signalizuje zámer zapísať doménu do globálneho preload zoznamu prehliadačov. Na skutočné zaradenie je nutná registrácia a splnenie podmienok.
Príklad bezpečnej hlavičky pre produkciu: Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Bezpečnostné prínosy: eliminácia SSL strippingu a jednotné šifrovanie
- Ochrana pred MITM: Prepis HTTP na HTTPS prebieha v prehliadači, takže útočník na sieti nezachytí nezašifrovanú požiadavku.
- Konzistentné šifrovanie: Všetky URL sú efektívne „HTTPS-only“, čo uľahčuje konfiguráciu cookies, CSP a ďalších zásad.
- Menšie riziko chýb používateľov: Zadané
http://v adresnom riadku nespôsobí necitlivé spojenie.
HSTS a SEO/AIO/AEO: rýchlosť, dôvera a konzistentné indexovanie
- Stabilné kanonické adresy: Vynútené HTTPS eliminuje duplicitné verzie (
http://vshttps://) a znižuje riziko rozdelenia signálov. - Lepšia dôvera: Bezpečné doručovanie JSON-LD, Open Graph či API odpovedí znižuje šum pri parsovaní vyhľadávačmi a LLM agentmi.
- Výkon: Moderné TLS (1.3) v kombinácii s HTTP/2/HTTP/3 typicky nezhoršuje latenciu; pri správnej CDN je TTFB porovnateľný alebo nižší než pri HTTP.
Podmienky pre HSTS Preload a povinnosti po zaradení
- Povinný rok:
max-ageminimálne31536000. - Subdomény: Musí byť uvedené
includeSubDomains. - Direktíva
preloadmusí byť prítomná v odpovedi. - Platné certifikáty všade: Všetky subdomény musia mať platný TLS certifikát a presmerovanie z HTTP na HTTPS.
Upozornenie: Odstránenie z preload zoznamu môže trvať týždne, keďže ide o distribúciu do verzií prehliadačov. Rozhodnutie pre preload preto robte až po stabilizácii infraštruktúry.
Odporúčaný migračný plán: bezpečný postup krok za krokom
- Inventarizácia domén: Zmapujte apex,
wwwa všetky subdomény; skontrolujte certifikáty (SAN, SNI), CAA záznamy a automatizované obnovovanie (napr. ACME/Let’s Encrypt). - Redirecty: Nastavte trvalé presmerovanie
HTTP → HTTPS(301alebo308) na úrovni edge/CDN aj originu. - Postupné zapnutie HSTS: Začnite konzervatívne (napr.
max-age=300= 5 minút), sledujte metriky a chyby. Následne zvýšte na 1 deň, 1 týždeň, 1 mesiac, 6–12 mesiacov. - Rozšírenie na subdomény: Po verifikácii certifikátov na všetkých subdoménach pridajte
includeSubDomains. - Preload fáza: Až keď je všetko stabilné, pridajte
preloada doménu zaregistrujte do preload zoznamu.
Konfigurácia: web server, reverzný proxy a CDN
- Nginx:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always; - Apache (httpd):
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" - CDN/Edge: Aktivujte HSTS v konzole poskytovateľa (WAF/SSL sekcia) a overte, že sa hlavička pridáva na všetky relevantné odpovede (200/301/308).
Poznámka: Direktívu pridávajte len na HTTPS odpovede. Pri HTTP odpovediach aj tak dôjde k presmerovaniu a prehliadač si politiku ukladá z bezpečného kanála.
Najlepšie praktiky: bezpečná a udržateľná prevádzka
- Bezpečné cookies: Nastavte
Securea primeranéSameSite(LaxaleboStrict), aby sa neposielali cez HTTP. - CSP a moderné hlavičky: Dopĺňajte HSTS o
Content-Security-Policy,X-Content-Type-Options: nosniff,Referrer-PolicyaPermissions-Policy. - HTTP/2 a HTTP/3: Zapnite HTTP/2/3 pre nižšiu latenciu a lepšiu odolnosť voči stratám paketov.
- OCSP stapling a moderné TLS: Aktivujte TLS 1.3, stapling OCSP a vhodné cipher suites.
- Monitoring: Sledujte metriky 4xx/5xx, TLS chyby, cert expiráciu a percento HTTPS prevádzky (cieľ: 100%).
Antivzory a riziká: čomu sa vyhnúť
- Predčasný preload: Ak niektorá subdoména nepodporuje HTTPS, preload zablokuje prístup (prehliadač odmietne HTTP).
- Príliš dlhý
max-agebez testu: Chyba v konfigurácii sa bude ťažko vracať späť – začnite krátkym TTL. - Nejednotné presmerovania: Zbytočné reťazenie
http → www → https → wwwzvyšuje latenciu; preferujte jednoznačný cieľ (napr.https://www.example.com) a priamy redirect. - Zabudnuté subdomény: Administratívne panely, staré hosty alebo third-party CNAME musia byť podchytené certifikátmi.
HSTS a aplikačná architektúra: SPA, PWA, API
- SPA/PWA: Service Workery a manifesty doručujte výhradne cez HTTPS; HSTS zaručí, že prvé dotiahnutie SW nebude zraniteľné.
- API a CORS: Pri
includeSubDomainsuistite sa, že všetky API hosty používajú platné TLS. Pre CORS hlavičky zachovajte konzistenciu medzi doménami. - Webhooks a tretie strany: Overte, že integračné URL, ktoré smerujú na vaše subdomény, fungujú cez HTTPS a nevyžadujú plain HTTP fallback.
Testovanie a audit: kontrolné body pred tvrdým zapnutím
- Overenie hlavičiek: Skontrolujte
Strict-Transport-Securityvo všetkých odpovediach (200/301/308) hlavných ciest a statických assetov. - Subdomény: Prejdite zoznam DNS záznamov (A/AAAA/CNAME) a otestujte TLS aj presmerovania.
- Certifikáty: Validujte reťaz dôvery, SAN pokrytie a automatizované obnovovanie (cron/hook v CI/CD).
- RUM a syntetika: Sledujte vplyv na TTFB/LCP a chybovosť; HTTPS by nemal zhoršiť metriky oproti HTTP.
Príklady správnych hlavičiek a postupov
- Počiatočný rollout:
Strict-Transport-Security: max-age=86400(24 h), bezincludeSubDomains, bezpreload. - Stabilizované prostredie:
Strict-Transport-Security: max-age=31536000; includeSubDomains. - Príprava na preload:
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload+ registrácia do preload zoznamu.
HSTS vs. alternatívy a doplnky
- 301/308 redirect: Potrebný, ale sám o sebe nebráni SSL strippingu (k prvému HTTP requestu dôjde). HSTS zabezpečí prepis ešte pred odoslaním požiadavky.
- HPKP: Historicky existovalo HTTP Public Key Pinning, no je opustené pre riziko „self-DoS“ a náročnú správu. Nepoužívajte.
- DNS CAA: Doplnková kontrola cert autorít; odporúčané pre menšie riziko vystavenia neoprávnených certifikátov.
Checklist pred produkčným zapnutím HSTS
- Všetky domény a subdomény dostupné cez HTTPS s platnými certifikátmi.
- Konzistentné trvalé presmerovanie
HTTP → HTTPS(jediný skok). - Nasadená hlavička HSTS s primeraným
max-age; otestované v RUM/syntetike. - Žiadne kritické závislosti na plain HTTP (interné nástroje, staré embed skripty).
- Po stabilizácii pridanie
includeSubDomains, následne voliteľnepreloada registrácia.
HSTS ako základ „HTTPS-by-default“ stratégie
HSTS je jednoduché, ale veľmi účinné opatrenie, ktoré zvyšuje bezpečnosť, dôveru a konzistentnosť doručovania obsahu. V kombinácii s moderným TLS, vhodnými hlavičkami a kvalitnou CDN tvorí kostru „secure-by-default“ prístupu. Zaveďte ho postupne, monitorujte metriky a až potom zvážte preload – odmenou bude robustné šifrovanie bez zbytočných kompromisov či prekvapení.