Mi az a HSTS, és hogyan kapcsolhatom be weboldalamon?

SSL 2 perc olvasás

A HSTS (HTTP Strict Transport Security) egy biztonsági mechanizmus: a weboldal egy fejléccel arra utasítja a látogató böngészőjét, hogy egy megadott ideig kizárólag titkosított HTTPS-kapcsolaton keresztül nyissa meg az oldalt, akkor is, ha a látogató http:// címet ír be vagy egy régi linkre kattint.

Miért van rá szükség?

Az SSL tanúsítvány és a HTTPS-átirányítás önmagában nem véd teljesen. Ha egy látogató HTTP-vel nyitja meg az oldalt, az első kérés titkosítatlanul indul, és csak a szerver válasza irányítja át HTTPS-re. Egy nyilvános wifin egy támadó ezt az első kérést elfoghatja, és a látogatót egy hamis, titkosítatlan oldalon tarthatja (SSL stripping). A HSTS ezt a rést zárja be: a böngésző már a kérés elküldése előtt HTTPS-re vált.

A HSTS egy további védelmet is ad: ha a tanúsítvány hibás, a böngésző nem engedi a látogatónak, hogy a figyelmeztetést átugorva mégis belépjen.

A fejléc felépítése

Strict-Transport-Security: max-age=31536000; includeSubDomains
  • max-age: hány másodpercig jegyezze meg a böngésző a szabályt (31 536 000 másodperc = 1 év).
  • includeSubDomains: a szabály az összes aldomainre is érvényes.
  • preload: jelzi, hogy a domaint fel szeretné vetetni a böngészőkbe beépített HSTS-listára (lásd lent).

A böngésző csak HTTPS-en kapott fejlécet vesz figyelembe; HTTP-n küldve hatástalan.

Bekapcsolás

Apache vagy LiteSpeed (.htaccess):

<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
</IfModule>

Nginx: a HTTPS server blokkban:

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

Cloudflare: ha a domain Cloudflare mögött van, az SSL/TLS > Edge Certificates oldalon a HTTP Strict Transport Security (HSTS) résznél kapcsolhatja be.

Bekapcsolás után a böngésző fejlesztői eszközeiben (Hálózat fül, a dokumentum válaszfejlécei között) vagy a curl -sI https://pelda.hu | grep -i strict paranccsal ellenőrizheti, hogy a fejléc megérkezik-e.

Fokozatos bevezetés

Mivel a böngésző a szabályt a max-age idejére megjegyzi, és közben a beállítás nem vonható vissza a látogatóknál, érdemes lépésenként haladni:

  1. Ellenőrizze, hogy minden oldal és erőforrás hibátlanul működik HTTPS-en, vegyes tartalom nélkül.
  2. Kezdje rövid idővel, például max-age=300 (5 perc), és az includeSubDomains nélkül.
  3. Ha néhány napig nincs gond, emelje egy hétre, majd egy évre.
  4. Az includeSubDomains csak akkor kerüljön bele, ha minden aldomainnek (például mail., teszt., belső rendszerek) van érvényes tanúsítványa.

HSTS preload

A böngészők egy beépített listát is tartalmaznak azokról a domainekről, amelyeket már az első látogatáskor is csak HTTPS-en nyitnak meg. Felvételt a hstspreload.org oldalon kérhet, ha a fejléc legalább egyéves max-age értékkel, includeSubDomains és preload kapcsolóval érkezik. A listáról való törlés hónapokig tarthat, ezért ezt csak akkor válassza, ha biztos benne, hogy a domain minden aldomainje tartósan HTTPS-en marad.

Vissza: SSL leírások (35)