Defaults.Exposed › Opravy › HSTS (Strict-Transport-Security)
Jak opravit HSTS (Strict-Transport-Security)
HSTS je jednořádková instrukce, kterou váš web dá každému prohlížeči: 'vždy ke mně přicházej přes zabezpečené, šifrované připojení — nikdy přes nezabezpečené.' Bez ní může být váš zámek tiše odebrán na sdílené WiFi a úplně první návštěva vašeho webu je vystavena.
Výsledek pro vaše podnikání: Mít HTTPS (zámek) není totéž jako ho vynucovat. Bez HSTS může útočník na stejné WiFi jako váš zákazník tiše sestoupit připojení na prostý, nešifrovaný HTTP — zachytávajíce přihlášení, údaje o kartě a data formuláře, zatímco zákazník nevidí nic špatného. Váš SSL certifikát, za který možná platíte, je obejit. Oprava je zdarma a trvá asi 15 minut pro toho, kdo provozuje váš web.
Co vás to může stát
- Zákazníci na WiFi v kavárně, hotelu, letišti nebo na konferenci mohou mít jejich připojení k vašemu webu tiše sestoupeno a jejich data přečtena — bez jakéhokoliv varování na jejich obrazovce.
- Zaplatili jste za HTTPS a máte zámek, ale bez HSTS mohou útočníci jednoduše ho obejít; certifikát dává falešný pocit bezpečnosti.
- Úplně první návštěva vašeho webu (před jakýmkoliv přesměrováním na HTTPS) je slabým místem, na které útočníci cílí — HSTS je to, co ho uzavře pro každou zpětnou návštěvu.
- Bezpečnostní dotazník, formulář kybernetického pojištění nebo kontrolní seznam podnikového kupujícího označí 'žádné HSTS' a zastaví obchod, dokud to nebude opraveno.
- Nastavte hodnotu špatně (příliš krátce) a dostanete to nejhorší z obou světů: vypadá nakonfigurovaně, ale poskytuje téměř žádnou skutečnou ochranu.
Proč na tom záleží. HTTPS chrání připojení, jakmile je šifrováno — ale nenutí prohlížeče ho používat. Útočníci tuto mezeru zneužívají 'SSL strippingem': na jakékoli sdílené síti tiše ponechají návštěvníka na nezabezpečeném HTTP a čtou vše. HSTS říká prohlížeči odmítnout prostý HTTP pro vaši doménu úplně, po dlouhou dobu, takže mezera se uzavře po první návštěvě. Je to jediná hlavička odpovědi, zdarma k přidání, a v našem hodnocení stojí skutečné body, protože chybějící nebo příliš krátká hodnota vystaví každého návštěvníka na veřejné WiFi.
Co to je, prostými slovy
Téměř jistě máte HTTPS — malý zámek v adresním řádku prohlížeče. Dobře. Ale zde je část, o které téměř nikdo není informován: mít HTTPS není totéž jako ho vynucovat.
HTTPS šifruje připojení jakmile se prohlížeč rozhodne ho použít. HSTS — zkratka pro HTTP Strict Transport Security — je instrukce, která nutí prohlížeč ho vždy používat. Je to jediný, neviditelný řádek, který váš web pošle každému návštěvníkovi, který říká v podstatě:
“Od teď, pro mou doménu, komunikuj se mnou pouze přes zabezpečené připojení. Nikdy přes nezabezpečené. Ani to nezkoušej.”
Prohlížeč si to zapamatuje a řídí se tím po tak dlouho, jak mu řeknete — obvykle rok. Po první bezpečné návštěvě návštěvníka jejich prohlížeč jednoduše odmítne načíst váš web přes prostý, nešifrovaný HTTP, i když se to někdo pokusí vynutit.
Bez HSTS toto pravidlo “vždy používat zabezpečenou verzi” neexistuje — a útočníci přesně vědí, jak zneužít mezeru.
Co vás to může stát
Toto jsou realistické, každodenní scénáře. Nikdy nejmenujeme skutečnou firmu; jde o ilustrace toho, jak je mezera využívána.
-
Platba v kavárně. Zákazník otevře váš obchod na WiFi v kavárně a jde platit. Útočník na stejné síti spustí bezplatný, dobře známý nástroj, který ponechá zákazníka na prostém HTTP místo HTTPS. Zákazník vidí to, co vypadá jako váš normální web — žádné varování, žádný rozbitý zámek na místě, kde by se podívali — a zadají údaje o kartě. Útočník přečte každý stisk klávesy. Váš SSL certifikát nedělal nic, protože připojení nikdy nebylo dovoleno stát se bezpečným.
-
Cestující zaměstnanec. Zaměstnanec se přihlásí do vašeho administrátorského panelu nebo webové pošty z hotelu nebo letiště. Stejný downgrade trik zachytí jejich uživatelské jméno a heslo. Nyní má útočník způsob do vaší firmy — ne proto, že vaše politika hesel byla slabá, ale proto, že přihlašovací stránka byla dosažitelná přes nezabezpečené HTTP.
-
Obchod, který stagnuje. Větší zákazník vám pošle jejich standardní bezpečnostní dotazník před podpisem. Jeden řádek se ptá: “Vynucuje váš web HTTPS prostřednictvím HSTS?” Váš IT kontakt musí odpovědět “ne” a nákupní proces se pozastaví, zatímco spěcháte opravit bezplatné, 15minutové nastavení, které nyní vypadá jako červený příznak před kupujícím.
-
Kontrola kybernetického pojištění nebo compliance. Sken pojišťovny nebo auditor revizí vaší ochrany dat označí chybějící hlavičku. Šifrování osobních dat je explicitní očekávání podle pravidel ochrany dat (GDPR Článek 32) a “máme certifikát, ale nevynucujeme ho” je slabá pozice.
-
Falešný pocit bezpečnosti. Platíte za SSL, zámek se zobrazuje a všichni předpokládají, že web je bezpečný. Většinou je — dokud zákazník není na sdílené síti, přesně když jsou nejzranitelnější a nejméně pravděpodobní si všimnout, že je něco špatně.
Společný vlákno: náklady nejsou abstraktní. Je to karta nebo přihlášení skutečného zákazníka, zachyceno v nejhorší možný moment, bez spuštěného alarmu.
Co to vlastně je
Když prohlížeč požádá váš web o stránku, váš server odešle zpět stránku plus několik neviditelných “hlaviček” — extra instrukce, které prohlížeč čte, ale návštěvník nikdy nevidí. HSTS je jedna z těchto hlaviček:
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Tři části záleží:
max-age— jak dlouho (v sekundách) by měl prohlížeč pamatovat vynucení HTTPS.31536000je jeden rok. Toto je jeho jádro: příliš krátké a sotva pomáhá.includeSubDomains— rozšiřte pravidlo na každou subdoménu (shop.,app.,mail.a tak dále), nejen na vaši hlavní adresu.preload— zahrňte svou doménu do hlavního seznamu zabudovaného v prohlížečích, takže ochrana platí i při úplně první požadavku návštěvníka, než kdy viděli váš web.
Proč záleží “první návštěva”
HSTS má jednu inherentní omezení: prohlížeč pravidlo poslechne až poté, co viděl hlavičku alespoň jednou. Takže úplně první připojení nového návštěvníka je stále malé okno expozice. Dvě věci ho zužují: přesměrování HTTP na HTTPS (které je rychle dostane na zabezpečenou verzi) a preload (které okno zcela odstraní). Proto kompletní nastavení páruje HSTS se správným přesměrováním.
Jak vypadá “dobré” — a jak se hodnotí
Naše kontrola čte vaši živou hlavičku a hodnotí max-age:
| hodnota max-age | Co to znamená | Výsledek |
|---|---|---|
| 1 rok nebo více (≥ 31536000) | Výborné — doporučené nastavení | Plný počet bodů |
| 6 měsíců nebo více (≥ 15768000) | Dobré, ale ne celý rok | Částečné |
| 1 den nebo více (≥ 86400) | Slabé — příliš krátké pro spolehlivost | Nízké / částečné |
| Méně než 1 den nebo žádná hlavička | Fakticky žádná ochrana | Selhání (vysoká závažnost) |
Takže hlavička, která existuje, ale je nastavena na pár minut, je považována za selhání — vypadá nakonfigurovaně, ale nedělá svou práci. Zaměřte se na jeden rok. Kontrola také zaznamená, zda jsou přítomny includeSubDomains a preload.
Jak to opravit (zdarma, ~15 minut)
Předejte tuto sekci tomu, kdo provozuje váš web — vašemu IT pracovníkovi, webovému vývojáři nebo podpoře hostingu. Oprava je zdarma. Je to jedna hlavička nebo přepínač ve vaší hostingové platformě. Není nic k nákupu.
Jedno důležité pravidlo pořadí nejdříve: HSTS je lepivý — jakmile ho povolíte, prohlížeče odmítnou prostý HTTP pro vaši doménu po celý max-age. Potvrďte tedy, že HTTPS správně funguje na vašem hlavním webu a každé subdoméně, než ho povolíte v širokém rozsahu. Bezpečná cesta je: testujte s krátkou hodnotou → potvrďte, že se nic nerozbije → zvyšte na rok.
Krok 1 — Ujistěte se, že HTTPS již všude funguje
Navštivte svůj web a klíčové subdomény přes https:// a potvrďte, že se načítají čistě s platným certifikátem. Také potvrďte, že prostá http:// požadavky přesměrují na https://. (Pokud ne, nejprve opravte přesměrování HTTP na HTTPS — HSTS předpokládá, že je na místě.)
Krok 2 — Přidejte hlavičku (zvolte svou platformu)
Cloudflare (nebo podobné CDN): To je nejjednodušší. Přejděte na SSL/TLS → Certifikáty hrany → HTTP Strict Transport Security (HSTS) a povolte ho. Nastavte Max-Age na 6 nebo 12 měsíců a povolte “Aplikovat politiku HSTS na subdomény”, jakmile jste si jisti, že všechny subdomény jsou na HTTPS.
Nginx: přidejte do vašeho HTTPS bloku server:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
Apache: ujistěte se, že je povoleno mod_headers, pak přidejte do svého HTTPS virtuálního hostitele:
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
Microsoft IIS: přidejte do web.config uvnitř <customHeaders>:
<add name="Strict-Transport-Security" value="max-age=31536000; includeSubDomains; preload" />
Poznámka k Google Workspace / Microsoft 365: tyto pohání váš e-mail, nikoli vaše webové hostování — HSTS se nastavuje kdekoliv váš veřejný web skutečně žije (váš CDN, webový server nebo tvůrce webu), nikoli v administrátorské konzoli Workspace/365. Pokud je váš web na tvůrci jako Squarespace, Wix nebo Shopify, HSTS je obvykle za vás zajištěno; zkontrolujte jejich nastavení SSL/zabezpečení, pokud naše kontrola označuje problém.
Krok 3 — Testujte malé, pak potvrďte
Začněte s max-age=300 (5 minut). Potvrďte, že web stále perfektně načítá všude. Pak zvyšte na max-age=31536000 (jeden rok). To je nastavení s plným hodnocením.
Krok 4 (volitelné, zlatý standard) — preload
Jakmile jste sebejistí a spouštíte roční hlavičku s includeSubDomains po chvíli, můžete svou doménu odeslat na hstspreload.org k zabudování do prohlížečů. Toto zcela uzavře okno první návštěvy. Považujte to za záměrný závazek — odstranění domény ze seznamu je pomalé.
Běžné chyby
- Nastavení
max-agepříliš krátce. Hodnota pár minut nebo hodin vypadá nakonfigurovaně, ale poskytuje téměř žádnou ochranu — a naše kontrola zachází s čímkoliv pod den jako se selháním. Použijte rok. - Zapnutí
includeSubDomainspřed tím, než jsou subdomény připraveny na HTTPS. Pokud subdoména není plně na HTTPS, lepivé pravidlo ji může učinit nedostupnou pro návštěvníky. Nejprve dostaňte každou subdoménu na HTTPS. - Přidání HSTS, ale bez přesměrování HTTP na HTTPS. HSTS předpokládá, že návštěvníci dosáhnou zabezpečené verze; bez přesměrování je první návštěva zbytečně vystavena. Opravte obojí společně.
- Skákání přímo na
preload, abyste byli ‘důkladní.’ Preload je těžké vrátit zpět. Zasloužte si ho postupně po stabilní roční hlavičce — nespěchejte s tím. - Předpoklad, že zámek znamená, že jste pokryti. Zámek a HSTS jsou různé věci. Můžete mít perfektní certifikát a stále selhat v této kontrole.
Časté dotazy
Již máme HTTPS a zámek se zobrazuje. Nestačí to?
Ne — a toto je jediné nejčastější nedorozumění. Zámek znamená, že připojení MŮŽE být šifrováno; nenutí prohlížeče používat šifrovanou verzi. Bez HSTS může útočník na stejné síti ponechat návštěvníka na prostém HTTP (nazývaném SSL stripping) a číst vše, co zadají, zatímco zákazník vidí normálně vypadající web. HSTS je instrukce, která dělá 'pouze šifrované' povinným. HTTPS bez HSTS jsou zamčené dveře, které nejsou skutečně zavřeny.
Je to drahé nebo riskantní zapnout?
Samotná oprava je zdarma — je to jeden řádek na vašem webovém serveru nebo přepínač ve vašem CDN — a trvá asi 15 minut. Jedna skutečná výstraha: HSTS je lepivý. Jakmile ho prohlížeč uvidí, odmítne prostý HTTP pro vaši doménu po celou dobu, kterou jste specifikovali. Musíte tedy být jisti, že HTTPS funguje na vašem hlavním webu A každé subdoméně, než ho povolíte v širokém rozsahu. Začněte s krátkou testovací hodnotou, potvrďte, že se nic nerozbije, pak zvyšte na rok. Provedeno v tomto pořadí je riziko zanedbatelné.
Jak 'dobré' skutečně vypadá?
max-age alespoň jeden rok (31536000 sekund). Naše kontrola uděluje plný počet bodů za rok nebo více, částečné body za šest měsíců, slabé/částečné za den a zachází s čímkoliv pod den jako fakticky nepřítomným. Nejsilnější nastavení také přidá includeSubDomains (pokrývá shop.yoursite.com, app.yoursite.com atd.) a preload (zabuduje ochranu do prohlížečů, takže dokonce úplně první návštěva je bezpečná).
Co je 'preload' a potřebujeme ho?
HSTS chrání návštěvníka teprve POTÉ, co jejich prohlížeč viděl hlavičku alespoň jednou — takže první požadavek zcela nového návštěvníka je stále malé okno expozice. Seznam předběžného načtení HSTS zabudovaný v Chrome, Firefox, Safari a Edge toto okno uzavírá tím, že doručí vaši doménu prohlížečům předem. Je volitelný a mírně větší závazek (odstranění je pomalé), ale je to zlatý standard. Pro většinu malých firem je jednoletý max-age s includeSubDomains již silný, bezpečný výsledek; preload je další krok, jakmile jste usazeni.
Jsme na Squarespace / Wix / Shopify — musíme vůbec něco dělat?
Většina plně hostovaných tvůrců webů (Squarespace, Wix, Shopify a podobní) vynucují HTTPS a často za vás automaticky nastaví HSTS — takže možná již procházíte bez toho, abyste cokoliv dělali. Výjimkou je, když používáte vlastní doménu nebo CDN před vaším webem; pak nastavení může propadnout mezerami. Spusťte kontrolu: pokud projde, jste hotovi. Pokud označí, oprava je přepínač v nastavení SSL/zabezpečení vaší platformy nebo jeden řádek na vašem CDN.
Pokud to neopravíme, sníží to naše hodnocení?
Ano. HSTS je hodnocená kontrola webové bezpečnosti, nikoli informativní — chybějící nebo příliš krátká hlavička stojí body a je hodnocena jako vysoká závažnost, protože přímo vystavuje data vašich návštěvníků na sdílených sítích. Je to také jeden z nejlevnějších bodů k získání zpět: jedna bezplatná hlavička, asi 15 minut práce.