HSTS, CSP a CAA: Tři bezpečnostní technologie, které by měl znát každý správce webu
HTTPS je důležitý základ zabezpečení webu. Samo však neurčuje, jaké skripty se mohou na stránce spouštět ani které certifikační autority smějí pro doménu vydávat certifikáty. Právě tyto oblasti pomáhají řešit HSTS, CSP a CAA. Každá technologie chrání jinou část provozu a společně vytvářejí další vrstvy ochrany. Jak fungují a na co si dát pozor při jejich nasazení?
Tři technologie, tři různé úkoly
Při zabezpečování webu se často řeší platný TLS certifikát, aktualizace redakčního systému a silná hesla. Vedle nich ale existují pravidla, kterými správce ovlivňuje chování prohlížeče i vydávání certifikátů:
| Technologie | Co řeší | Kde se nastavuje |
| HSTS | Vynucení přístupu přes HTTPS | HTTP hlavička v HTTPS odpovědi |
| CSP | Omezení načítání obsahu a spouštění kódu | Nejčastěji HTTP hlavička |
| CAA | Určení oprávněných vydavatelů certifikátů | DNS záznam |
HSTS a CSP zpracovává prohlížeč. CAA slouží certifikačním autoritám při rozhodování, zda mohou vydat certifikát pro konkrétní doménu. Nejde tedy o tři varianty stejné ochrany, ale o opatření, která se doplňují.
HSTS: Prohlížeč si zapamatuje, že má používat HTTPS
Web může návštěvníka automaticky přesměrovat z nezabezpečeného HTTP na šifrované HTTPS. První požadavek ale může ještě odejít nešifrovaně. HSTS pomáhá tento krok při dalších návštěvách vynechat. Web prohlížeči sdělí, že má používat výhradně HTTPS, a prohlížeč si toto pravidlo na určenou dobu zapamatuje.
V praxi to funguje následovně:
- Návštěvník otevře web přes HTTPS. Server spolu se stránkou odešle také pravidlo HSTS.
- Prohlížeč si pravidlo uloží. Zapamatuje si, že má daný web otevírat pouze přes zabezpečené spojení.
- Při dalším otevření HTTP odkazu použije rovnou HTTPS. Nemusí nejprve poslat nezabezpečený požadavek a čekat na přesměrování.
- Při chybě certifikátu připojení zablokuje. Návštěvník nemůže varování jednoduše obejít a pokračovat na web.
Pravidlo se předává pomocí HTTP hlavičky v HTTPS odpovědi, například: Strict-Transport-Security: max-age=31536000
Hodnota max-age určuje, jak dlouho si má prohlížeč pravidlo pamatovat, a uvádí se v sekundách. V této ukázce jde o jeden rok. Pokaždé, když prohlížeč hlavičku znovu přijme, začne tuto dobu počítat od aktuálního okamžiku.
HSTS však samo nezajišťuje ochranu úplně prvního přístupu přes HTTP, pokud prohlížeč pravidlo ještě nezná. Proto je nadále potřeba správně nastavit HTTPS i přesměrování z HTTP.
CSP: Pravidla pro obsah stránky a spouštění skriptů
Webová stránka obvykle obsahuje více než samotný text. Načítá obrázky, styly, fonty a také JavaScript, který zajišťuje například fungování menu nebo formulářů. Některé prostředky pocházejí přímo z webu, jiné z externích služeb.
CSP neboli Content Security Policy umožňuje nastavit pravidla, jaký obsah smí prohlížeč načítat a jaké skripty může spouštět. Pokud obsah pravidlům neodpovídá, prohlížeč ho zablokuje.

V praxi to funguje následovně:
- Server odešle stránku společně s pravidly CSP. Ta mohou například povolit skripty pouze z vlastního webu a obrázky také z vybrané externí služby.
- Prohlížeč kontroluje načítaný obsah. U jednotlivých prostředků ověřuje, zda odpovídají nastaveným pravidlům.
- Povolený obsah načte, ostatní zablokuje. Skript z nepovoleného zdroje se tak nespustí.
- Pravidla mohou omezit i kód vložený přímo do HTML. Nestačí tedy vždy jen to, že se skript nachází na stránce daného webu.
CSP pomáhá zmírnit dopady útoků XSS (cross-site scripting), při kterých útočník dostane do stránky škodlivý kód. Správně nastavená politika může zabránit jeho spuštění. Nenahrazuje však opravu chyb v aplikaci ani bezpečné zpracování uživatelských vstupů.
Jednoduché pravidlo může vypadat takto: Content-Security-Policy: default-src ‚self‘; script-src ‚self‘; object-src ‚none‘
Jednotlivé části znamenají:
- default-src ‚self‘ – jako výchozí pravidlo povoluje načítání prostředků ze stejného originu, tedy se shodným protokolem, hostitelem a portem.
- script-src ‚self‘ – povoluje externí JavaScript ze stejného originu. Skripty vložené přímo do HTML tím automaticky povolené nejsou.
- object-src ‚none‘ – zakazuje obsah načítaný pomocí prvků object a embed.
Pravidla je potřeba přizpůsobit konkrétnímu webu. Pokud stránka používá externí analytiku, fonty nebo jiné služby, příliš přísná CSP může narušit jejich fungování.
Pro první nasazení proto slouží režim Content-Security-Policy-Report-Only. Prohlížeč v něm upozorňuje na porušení navržených pravidel, ale podle této politiky obsah neblokuje. Správce tak může nejprve ověřit fungování webu, upravit pravidla a teprve potom zapnout jejich vynucování.
CAA: Kdo smí vydat certifikát pro doménu
Aby web mohl používat HTTPS, potřebuje platný TLS certifikát. Ten vydává certifikační autorita, například DigiCert. Vlastník domény může pomocí CAA neboli Certification Authority Authorization určit, které autority smějí pro jeho doménu certifikáty vydávat.

Pravidlo se zapisuje do DNS, tedy do systému, ve kterém se spravují například záznamy pro směrování domény na webový server. Na rozdíl od HSTS a CSP ho nezpracovává prohlížeč, ale certifikační autorita před vydáním certifikátu.
V praxi to funguje následovně:
- Správce nastaví CAA záznam u domény. Uvede v něm autoritu, kterou chce povolit.
- Autorita před vydáním certifikátu zkontroluje příslušná CAA pravidla. Ověří, zda jí vydání dovolují.
- Pokud je povolená, může pokračovat v procesu vydání. Stále však musí splnit ostatní podmínky, například ověřit kontrolu žadatele nad doménou.
- Pokud ji pravidla nepovolují, certifikát nesmí vydat. To platí také při vydávání nového certifikátu v rámci obnovy.
Záznam povolující autoritu DigiCert může vypadat takto: example.cz. IN CAA 0 issue „digicert.com“
Jednotlivé části znamenají:
- example.cz. – doména, pro kterou se pravidlo nastavuje.
- CAA – typ DNS záznamu.
- 0 – běžná hodnota příznaků, bez zapnutí zvláštního příznaku.
- issue – pravidlo určující oprávněného vydavatele certifikátů.
- „digicert.com“ – identifikátor povolené certifikační autority.
Více autorit lze povolit pomocí více CAA záznamů. Pro samostatné řízení wildcard certifikátů, například pro *.example.cz, slouží vlastnost issuewild. Pokud není uvedena, uplatní se i na wildcard certifikáty pravidla issue.
Před nastavením CAA zjistěte, kdo vydává všechny používané certifikáty. Hosting nebo CDN mohou pro automatické vydávání a obnovu využívat jinou autoritu než tu, u které certifikát objednáváte ručně. Pokud ji nepovolíte, obnova může selhat.
CAA již vydané certifikáty nezneplatňuje. Omezuje vydávání dalších certifikátů a pomáhá snížit riziko jejich vydání nepovolenou autoritou. Pokud pro doménu ani v příslušných nadřazených pravidlech žádné omezení není, CAA výběr autority neomezuje.
Jak nastavení ověřovat v praxi
Pravidla zavádějte postupně a po každé změně zkontrolujte, zda web správně funguje:
- Zjistěte, co web používá. Projděte subdomény, externí služby a autority, které vydávají vaše certifikáty.
- Zkontrolujte HTTPS. Ověřte, že web má platný certifikát a že funguje jeho obnova.
- HSTS nejprve zapněte na krátkou dobu. Platnost prodlužujte postupně. Subdomény zahrňte až po ověření, že také fungují přes HTTPS.
- CSP nejdříve vyzkoušejte bez blokování. Použijte režim Report-Only a otestujte formuláře, přihlášení i další důležité funkce.
- V CAA povolte potřebné autority. Nezapomeňte na certifikáty, které za vás spravuje hosting nebo CDN.
- Kontrolu zopakujte po změnách webu. Nový plugin nebo externí služba mohou vyžadovat úpravu pravidel.
Hlavičky HSTS a CSP najdete ve vývojářských nástrojích prohlížeče v části Síť (Network) po výběru požadavku na stránku. CAA záznamy můžete zkontrolovat v administraci DNS a jejich zveřejnění ověřit DNS dotazem.
Samotná přítomnost pravidel ale nestačí. Důležité je také otestovat fungování webu a obnovu certifikátů.
Bezpečnostní pravidla potřebují průběžnou péči
HSTS, CSP a CAA se vzájemně doplňují. HSTS vynucuje používání HTTPS, CSP omezuje načítání obsahu a spouštění kódu a CAA určuje, které autority smějí vydávat certifikáty pro doménu. Společně tak pomáhají posílit ochranu webu i jeho návštěvníků.
Jejich nasazením ale práce nekončí. Nové pluginy, externí služby nebo změna poskytovatele mohou vyžadovat úpravu pravidel. Pravidelnou kontrolu proto zařaďte do běžné správy webu, stejně jako aktualizace, zálohování a sledování dostupnosti.







