← Zpět na srovnání

HSTS: jak nastavit HTTPS bez zablokování webu

HSTS říká prohlížeči, aby se k doméně příště připojoval pouze přes HTTPS. Hlavička posílí ochranu, ale chybný rozsah může znepřístupnit subdoménu, která na HTTPS připravená není.

HTTPS a přesměrování z HTTP jsou základ. HSTS, neboli HTTP Strict Transport Security, přidá další vrstvu: po první bezpečné návštěvě si prohlížeč zapamatuje, že daný název má používat jen HTTPS. Budoucí pokusy o http:// proto změní na HTTPS ještě před odesláním dotazu na server.

Co hlavička HSTS dělá

Na odpovědi přes HTTPS server posílá například Strict-Transport-Security: max-age=86400. Hodnota max-age je počet sekund, po který má prohlížeč pravidlo držet. Hlavičku neposílejte pouze na HTTP: prohlížeče ji z nezabezpečeného spojení ignorují. Přesné chování a syntaxi popisuje referenční dokumentace MDN k Strict-Transport-Security.

HSTS nenahrazuje přesměrování 301 z HTTP na HTTPS. U prvního otevření domény prohlížeč pravidlo ještě nezná. Nechte proto funkční přesměrování a na HTTPS odpovědi přidejte HSTS; související kontrolu URL shrnuje návod jak nastavit přesměrování 301.

Začněte krátkou dobou

Před dlouhou platností nejdřív ověřte, že HTTPS funguje na všech stránkách, včetně administrace, formulářů, API a přihlášení. Začněte například jedním dnem: max-age=86400. Po několika dnech bez chyb lze dobu navyšovat, třeba na několik měsíců až rok podle provozu a schopnosti obnovovat certifikáty.

Prohlížeč obnovuje dobu při každé HTTPS odpovědi s hlavičkou. Pokud je potřeba HSTS vypnout, server musí přes HTTPS poslat max-age=0. Ani to nepomůže návštěvníkovi, který se k webu nemůže bezpečně připojit vůbec, proto je bezpečnější postupovat po krocích.

Kdy použít includeSubDomains

Direktiva includeSubDomains rozšíří pravidlo i na všechny subdomény. Má smysl jen tehdy, když každá současná i plánovaná subdoména zvládne HTTPS a má platný certifikát. Zkontrolujte také zapomenuté adresy jako mail, webmail, staging, vpn nebo staré kampaně.

Subdoména nemusí být součástí stejného hostingu ani DNS zóny. Jestli ji spravuje jiný tým nebo externí služba, nejdřív ověřte její HTTPS konfiguraci. Samostatné názvy pro vývoj a test raději nechte mimo produkční doménu, dokud nejsou připravené.

Preload není běžné nastavení

Direktiva preload je podklad pro zařazení domény do seznamů prohlížečů, není však součástí samotného standardu HSTS. Vyžaduje dlouhý max-age, includeSubDomains a důsledně fungující HTTPS. Odstranění z těchto seznamů není okamžité, proto preload používejte až po dlouhodobém ověření infrastruktury. Podmínky zveřejňuje služba HSTS preload.

Kontrolní seznam před nasazením

  1. Ověřte platný certifikát a automatickou obnovu pro hlavní doménu i variantu s www.
  2. Nechte HTTP přesměrovávat na odpovídající HTTPS URL.
  3. V prohlížeči a přes nástroj pro HTTP hlavičky zkontrolujte HSTS na skutečné HTTPS odpovědi.
  4. Začněte krátkým max-age a sledujte chyby uživatelů i aplikace.
  5. includeSubDomains přidejte až po auditu všech subdomén; preload až jako poslední, obtížně vratný krok.

Praktické shrnutí

HSTS má chránit hotové HTTPS, ne zakrýt nevyřešené certifikáty nebo přesměrování. Krátká zkušební platnost, kontrola všech subdomén a postupné navyšování max-age dávají stejný bezpečnostní přínos bez zbytečného rizika výpadku.