A HSTS (HTTP Strict Transport Security) egy HTTP-válaszfejléc, amellyel a szerver megparancsolja a böngészőnek, hogy a domaint egy megadott ideig kizárólag HTTPS-en keresse. A fejléc neve Strict-Transport-Security, és a böngésző a beállított időn belül a http:// címeket is HTTPS-re írja át, még mielőtt bármilyen kérést elküldene.
Hogyan működik
Az átirányítás önmagában nem elég. Ha a látogató http://oldal.hu címet ír be, az első kérés titkosítás nélkül megy ki. Egy támadó a hálózaton ezt elkaphatja, és nem engedi el a 301-es választ HTTPS-re. Ezt hívják SSL-stripping támadásnak.
A HSTS ezt a rést zárja be. Az első sikeres HTTPS-válasz után a böngésző eltárolja a szabályt. Onnantól a domainre menő HTTP-kéréseket saját maga alakítja át, hálózati forgalom nélkül. A max-age érték adja meg másodpercben, meddig érvényes a szabály, és minden HTTPS-válasz megújítja.
Mit jelentenek a direktívák
max-age=31536000: egy év, ez a szokásos érték. 6 hónap alatt (15768000) gyengének számít.
includeSubDomains: az összes aldomainre is kiterjed, például a shop. és a blog. címekre.
preload: jelzés, hogy a domain bekerülhet a böngészőkbe beépített HSTS-listába. Ekkor már a legelső látogatás is védett.
Mikor számít igazán
Login, kosár, pénztár, admin-felület: mindenhol, ahol munkamenet-süti vagy jelszó utazik. Egy elcsípett süti teljes fiók-átvételt jelenthet. Webshopnál ez közvetlen üzleti kockázat.
A generatív keresők és az AI-crawlerek (GPTBot, ClaudeBot, PerplexityBot és társaik) nem a HSTS-fejlécet olvassák értelmezés céljából. A hatás közvetett: a HSTS kikényszeríti az egységes HTTPS-címeket, így nem keletkezik HTTP és HTTPS duplikáció. Egy stabil, egy sémára rendezett oldalon kevesebb a duplikált tartalom és tisztább a kanonikus cím.
Röviden: a HSTS azt a néhány száz milliszekundumot védi ki, amíg a böngésző még nem tudja, hogy az oldalad HTTPS-en él.
Miért fontos
Biztonság
A sima HTTPS-átirányítás egy rést hagy. Az első kérés nyílt szövegben megy, és ezen a ponton lehet közbeavatkozni. A HSTS után a böngésző már nem is próbálkozik HTTP-vel, tehát nincs mit elfogni.
A veszély nem elméleti. Nyilvános wifi, szállodai hálózat, mobilszolgáltatói proxy: bárhol beékelődhet valaki. A munkamenet-süti pedig belépési jogot jelent.
SEO és címtisztaság
HSTS nélkül a HTTP- és HTTPS-változat is életben marad. A 301-es átirányítás ezt kezeli, de minden alkalommal újra lefut. A HSTS a klienst tanítja meg, így egy kérés-kör megspórolódik.
Ez mérhető sebességelőny is. Kevesebb átirányítás, jobb TTFB az első látogatás után.
Auditok és bizalom
A biztonsági minősítők vizsgálják a fejlécet. Az SSL Labs osztályzatnál A+ csak HSTS-szel érhető el, HSTS nélkül A a plafon. Ha partner vagy pályázat kér biztonsági felmérést, ez az első pár tétel egyike.
A riportokban ezt látjuk: az oldal HTTPS-en fut, érvényes tanúsítvánnyal, de a HSTS nincs bekapcsolva. Egy sor a konfigban, közepes hatás, nulla tartalmi munka.
Hogyan javítod
Előbb ellenőrizd, hogy minden érintett aldomain HTTPS-en fut. Utána indulj rövid max-age-dzsel, és csak bevált működés után emeld egy évre.
WordPress
A WordPress maga nem küld fejlécet, ez szerverszintű feladat.
- Apache esetén a
.htaccess fájlba tedd a Header always set sort (lásd a kódpéldát).
- Nginx esetén a szerverblokkba kerül az
add_header direktíva, ehhez hosting-hozzáférés kell.
- Ha Cloudflare vagy más CDN van előtte, ott is beállítható: SSL/TLS menü, HSTS szakasz.
- Töltsd újra az oldalt, és curl-lel ellenőrizd a fejlécet.
- Ha biztonsági plugin is állít fejléceket, nézd meg, nem küld-e duplán.
Shopify
A Shopify kezeli a tanúsítványt és a HSTS-t is, saját infrastruktúrán. Nincs mit beállítani, és nincs is hozzáférésed a fejlécekhez. Ellenőrizd curl-lel, hogy tényleg megjelenik-e.
Unas
Az Unas szolgáltatásként adja a HTTPS-t. Ha a fejléc hiányzik, nyiss ügyfélszolgálati jegyet, és kérd a Strict-Transport-Security bekapcsolását. Saját domainnél ellenőrizd, hogy minden aldomain rendben van-e.
Shoprenter
A Shoprenter szintén zárt platform. A fejlécet a szolgáltató oldalán kell kérni. Előtte curl-lel nézd meg, hátha már bent van.
Egyedi fejlesztés
- Döntsd el, hova kerül a fejléc: webszerver, reverse proxy vagy CDN. Egy helyre, ne többre.
- Állítsd be
max-age=300 értékkel, és ellenőrizd az összes aldomaint.
- Ha egy hét alatt nincs probléma, emeld
max-age=31536000-re.
- Adj
includeSubDomains-t, ha minden aldomain HTTPS-en van.
- A
preload csak a legvégén jöjjön. Onnan kilépni hónapokig tart.
- Ugyanitt rendezd a többi biztonsági fejlécet is.
Fontos sorrend: a HSTS előtt szüntesd meg a kevert tartalmat. Ha a HTTP-erőforrások megmaradnak, a böngésző a HSTS után sem tölti be őket, és törhet a megjelenés.
Technikai példa
Ajánlott fejléc egy évvel, aldomainekkel:
Strict-Transport-Security: max-age=31536000; includeSubDomains
Apache, a .htaccess vagy a virtualhost fájlban. Az env=HTTPS feltétel gondoskodik róla, hogy a fejléc csak titkosított válaszra kerüljön rá:
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains" env=HTTPS
</IfModule>
Nginx, a 443-as szerverblokkban. Az always miatt a hibaválaszokra is felkerül:
server {
listen 443 ssl;
server_name oldal.hu;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
}
Ellenőrzés a beállítás után. Az első sor a HTTPS-választ nézi, a második az átirányítási láncot:
curl -sI https://oldal.hu | grep -i strict-transport
curl -sI https://blog.oldal.hu | grep -i strict-transport
Mit néz ebből a riport
Az audit megnézi, hogy a HTTPS-válaszon szerepel-e a Strict-Transport-Security fejléc. Ha hiányzik, közepes hatású hiányosságot jelez, környezet vagy hoszting hatókörrel. Az ajánlás egyszerű: kapcsold be a fejlécet a szerveren.
Gyakori kérdések
Ha már HTTPS-re irányítok át, minek a HSTS?
Az átirányítás csak azután lép be, hogy az első kérés már nyílt szövegben kiment. Éppen ez az a pillanat, amit egy hálózati támadó kihasználhat. A HSTS-szel a böngésző már a kérés elküldése előtt HTTPS-re vált. Az átirányításra továbbra is szükség van, mert az első látogatást még az sem tudja megelőzni.
Milyen max-age értéket adjak meg?
Éles oldalon max-age=31536000, vagyis egy év. Ez a bevett érték, és az SSL Labs is ezt várja A+ osztályzathoz. Bevezetéskor viszont indulj alacsonyabbal, például 300 másodperccel. Így egy elrontott konfiguráció nem zárja ki a látogatókat napokra.
Veszélyes-e bekapcsolni?
Alapesetben nem, ha az oldal stabilan HTTPS-en fut. Két dologra kell figyelni: az includeSubDomains minden aldomaint érint, és a preload nehezen visszavonható. Ha ezeket csak ellenőrzés után adod meg, a HSTS rutinbeállítás.
Segít-e a HSTS a Google-rangsorolásban?
Közvetlen rangsorolási tényezőként nem működik. Közvetve annyit tesz, hogy egységesíti a címeket, és eltünteti a HTTP-változatot a képből. Ez kevesebb duplikációt és tisztább indexelést jelent. A hatás valós, de szerény.
Hogyan kapcsolom ki, ha rosszul állítottam be?
Állítsd a fejlécet max-age=0 értékre, és hagyd kint, amíg a régi érvényesség le nem jár. A már eltárolt szabályt csak így lehet visszavonni a látogatók böngészőjében. Saját gépen a Chrome chrome://net-internals/#hsts felületén törölhető azonnal. Preload-listáról a kivétel hónapokat vesz igénybe.