HSTS, tarayıcıya sitenizde yalnızca HTTPS kullanmasını söyler; ancak bunu başlığı bir kez aldıktan sonra yapar. HSTS preload listesi bu boşluğu kapatır. Liste Chrome’a gömülü alan adlarından oluşur; Firefox, Safari ve Edge’deki listeler de buna dayanır. Bu tarayıcılar, listedeki bir alan adı ve tüm alt alan adları için daha ilk istek cihazdan çıkmadan HTTPS kullanır.
Listeye girmek hstspreload.org’daki bir formdan ibarettir. Listeden çıkmak ise aylar alır. Bu rehber listenin ne olduğunu, tam gönderim gereksinimlerini, preload’u çoğu site için geri dönüşsüz bir karar yapan riskleri, aşamalı bir max-age planını ve hem başlığınızı hem liste durumunuzu nasıl kontrol edeceğinizi anlatır. Tüm örneklerde example.com kullanılır.
2026 için kısa özet: hstspreload.org her HTTPS sitesi için HSTS önerir, ancak artık preload’u varsayılan olarak önermez. Herhangi bir yere preload yönergesini eklemeden önce 2. bölümü okuyun.
Bu rehberin kapsamı
Bu rehber dışarıdan görülebilenleri kapsar: herkese açık başlıklar, yönlendirmeler ve herkese açık preload listesi. Ücretsiz kontrol aracı tek bir herkese açık yanıtı okur, iç alt alan adlarını göremez ve sızma testi (pentest) değildir.
1. HSTS preload listesi nedir?
HTTP Strict Transport Security, RFC 6797 ile tanımlanır. Sunucu HTTPS üzerinden Strict-Transport-Security: max-age=… gönderir; tarayıcı da max-age saniye boyunca bu ana makineye yalnızca HTTPS ile erişilebileceğini hatırlar. Ziyaretçinin tarayıcısı bu başlığı bir kez alana kadar, ilk düz http:// isteğini hiçbir şey korumaz ve aynı ağdaki bir saldırgan onu araya girerek yakalayabilir. RFC bu ilk bağlantı zayıflığını anlatır ve çözümlerden biri olarak önceden yapılandırılmış politikaları önerir.
Preload listesi bu çözümün uygulamadaki hâlidir. Listeyi Chromium projesi yönetir ve yeni girdiler Chrome’un kaynak koduna doğrudan yazılır. Chromium HSTS sayfasına ve hstspreload.org’a göre Firefox, Safari ve Edge, Chrome’unkine dayanan kendi listelerini tutar. Girdiyi içeren her tarayıcı sürümünde preload edilmiş bir alan adı ilk açılıştan itibaren yalnızca HTTPS’tir; gönderimler includeSubDomains içermek zorunda olduğundan altındaki her ad da öyledir.
Üç ayrıntı sık yanlış anlaşılır:
preloadyönergesi tarayıcıda hiçbir şey yapmaz. RFC 6797’nin parçası değildir ve tarayıcılar tanımadıkları yönergeleri yok sayar. Liste yöneticilerine alan adı sahibinin eklenmeyi kabul ettiğini bildirir. Başlığınız bunu taşıdığı anda herkes alan adınızı formdan gönderebilir.- Listeye yalnızca kayıtlı alan adının tamamı girer.
www.example.comveyashop.example.comdeğil,example.comgönderirsiniz; girdi, herkese açık olmayan iç alt alan adları dahil tüm alt alan adlarını kapsar. - Bazı üst düzey alan adları bütünüyle preload edilmiştir. Örneğin
.appveya.devaltındaki her alan adı, sahibi bir şey göndermemiş olsa bile listeyi kullanan tarayıcılarda zaten yalnızca HTTPS’tir.
2. Hâlâ preload’a ihtiyacınız var mı?
Çoğu site için muhtemelen hayır. Gönderim sitesi artık HSTS’nin önerildiğini, HSTS preload’un önerilmediğini söylüyor. Chrome ve Safari, HSTS politikası ne olursa olsun http:// ile başlayan gezintilerde otomatik olarak HTTPS’i dener; dolayısıyla preload’un kapatmak için tasarlandığı ilk ziyaret boşluğu daralmıştır. hstspreload.org’a göre preload, yalnızca bu otomatik yükseltmeler etkin bir saldırgan yüzünden başarısız olduğunda ek koruma sağlar ve faydası HSTS’nin kendisine kıyasla asgaridir.
Aşağıdakilerin hepsi doğruysa preload yine de anlamlı olabilir:
- ilk ziyarette sürüm düşürme sizin için önemlidir; örneğin insanlar herkese açık ağlardan giriş yapıyor veya ödeme yapıyordur;
- iç ve satıcı barındırmalı olanlar dahil mevcut ve gelecekteki her alt alan adı geçerli sertifikayla HTTPS sunabilir;
- alan adını ve üzerindeki HTTPS’i yıllarca tutmayı planlıyorsunuzdur.
Tam kontrol etmediğiniz alt alan adlarını ekipler veya satıcılar işletiyorsa, iç ana makineler herkese açık alan adının altındaysa, alan adı kısa ömürlü bir kampanyaya aitse ya da alan adını satma veya devretme ihtimaliniz varsa preload’u atlayın ya da erteleyin: girdi, biri kaldırma talep edene kadar alan adıyla birlikte sonraki sahibine geçer. preload içermeyen iyi yapılandırılmış bir HSTS başlığı zaten geri dönen her ziyaretçiyi korur.
3. Tam gönderim gereksinimleri
hstspreload.org bu koşulları gönderim sırasında denetler ve sonrasında da karşılamaya devam etmeniz gerekir: koşulları karşılamayan alan adları listeden çıkarılabilir; başlıktan preload çıkarmak ise alan adını hemen kaldırılmaya uygun hâle getirir.
| Gereksinim | Uygulamada anlamı | Nasıl kontrol edilir |
|---|---|---|
| Geçerli sertifika | Ana alan adı, tarayıcıların güvendiği ve zinciri eksiksiz bir sertifika sunar | Site uyarısız açılır; curl https://example.com/ sertifika hatası bildirmez |
| Aynı ana makinede HTTP’den HTTPS’e | 80 portu yanıt veriyorsa http://example.com/, doğrudan https://www.example.com/ adresine değil, önce https://example.com/ adresine yönlenir | curl -sS -D - -o /dev/null http://example.com/ 301 veya 308 ile o Location değerini gösterir |
| Tüm alt alan adları HTTPS’te | İç içe ve iç olanlar dahil her alt alan adı HTTPS ile çalışır; DNS kaydı varsa www da HTTPS gerektirir | DNS bölgeleriniz ve sertifika envanteriniz; form iç adları göremez |
| Ana alan adında HSTS | https://example.com/ adresinden gelen HTTPS yanıtlarında, orada sunulan yönlendirmeler dahil gönderilir | curl -sS -D - -o /dev/null https://example.com/ |
| En az 31536000 max-age | Saniye cinsinden bir yıl; hstspreload.org’daki örnek 63072000, yani iki yıl kullanır | max-age= sonrasındaki sayıyı okuyun |
| includeSubDomains | Politikayı her alt alan adına yayar | Yönerge başlıkta bulunur |
| preload | Eklenmeyi kabul ettiğinizi bildirir | Yönerge başlıkta bulunur |
Yönlendirme kuralı birçok siteyi yakalar. https://example.com/, https://www.example.com/ adresine yönleniyorsa bu yönlendirme yanıtının kendisi tam başlığı taşımalıdır. www sayfasındaki başlık sayılmaz, çünkü www.example.com tarafından belirlenen politika ana alan adına asla uygulanmaz. Geçen bir başlık şöyle görünür:
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload4. Riskler: preload’u geri almak neden zor?
- Kaldırma aylar sürer. Kaldırma, tarayıcı güncellemeleriyle kullanıcılara ulaşan bir kaynak değişikliğidir. Kaldırma sayfası, çoğu Chrome kullanıcısına ulaşmanın 6 ila 12 hafta sürebileceğini, diğer tarayıcılarda daha uzun olabileceğini söyler. Hiç güncellenmeyen bir tarayıcı eski girdiyi korur.
- HTTPS sunamayan alt alan adları çalışmaz. Tipik örnekler: yalnızca iç DNS’te çözülen intranet ana makineleri, kendinden imzalı sertifika kullanan yazıcı, yönlendirici ve depolama aygıtı yönetim sayfaları, unutulmuş test sunucuları ve yalnızca HTTP ile yanıt veren, CNAME üzerindeki satıcı hizmetleri; örneğin yardım masası, durum sayfası veya e-posta tıklama izleme bağlantıları. Alan adınızın preload edildiği bir tarayıcıda bunlar, hatayı geçmenin yolu olmadan başarısız olur.
- Sertifika hataları kesin hataya dönüşür. HSTS’li bir ana makinede RFC 6797, tarayıcının herhangi bir sertifika hatasında ziyaretçiye tıklayıp geçme izni vermeden bağlantıyı sonlandırmasını şart koşar. Herhangi bir alt alan adındaki süresi dolmuş bir sertifika, yenilenene kadar herkesi dışarıda bırakır; bu yüzden göndermeden önce yenilemeyi otomatikleştirin ve son kullanma tarihlerini izleyin.
- Geri dönen ziyaretçiler kayıtlı politikalarını korur. Listeden çıkmak, tarayıcıların başlığınızdan öğrendiği politikayı silmez. İki yıllık bir
max-ageile bu kopya, ziyaretçi dönüp HTTPS üzerindenmax-age=0almadıkça iki yıl sürer. - Yanlışlıkla gönderim. İçinde zaten
preloadbulunan bir şablondan kopyalanan başlık, herkesin alan adınızı göndermesi için yeterlidir. Bir sonraki bölümdeki plan bitene kadar yönergeyi eklemeyin.
5. Göndermeden önce aşamalı bir max-age planı
hstspreload.org, max-age değerini ilk aşamadan itibaren includeSubDomains ile birlikte aşamalı olarak artırmayı önerir. Her aşamada bozuk sayfalara bakın, trafik, girişler ve gelir gibi rakamlarınızı izleyin, çıkanı düzeltin, sonra ilerlemeden önce o aşamanın tam max-age süresi kadar en az bekleyin. Aşamaları önce bir test grubuyla yürütebilirsiniz, ancak sonrasında herkes için yürütün.
| Aşama | Başlık değeri | En az bekleme | Nelere bakılır |
|---|---|---|---|
| 0. Envanter | Henüz değişiklik yok | Liste tamamlanana kadar | DNS bölgelerinden, sertifika siparişlerinden ve Certificate Transparency günlüklerinden her alt alan adı, her biri HTTPS üzerinden test edilmiş |
| 1. Beş dakika | max-age=300; includeSubDomains | 5 dakika; birkaç günlük gerçek trafik daha çok şey söyler | Unutulmuş alt alan adlarındaki hatalar, karışık içerik |
| 2. Bir hafta | max-age=604800; includeSubDomains | 1 hafta | Destek talepleri, giriş ve ödeme hataları, iç araçlar |
| 3. Bir ay | max-age=2592000; includeSubDomains | 1 ay | Aylık işler, satıcı ve e-posta bağlantıları, nadiren kullanılan ana makineler |
| 4. İki yıl | max-age=63072000; includeSubDomains; preload | Sonra gönderin | Listede kaldığınız sürece sertifika yenilemeleri ve her yeni alt alan adı |
nginx’te başlığı HTTPS server bloğundan always parametresiyle gönderin; böylece hata sayfaları da taşır. HTTP yönlendirmesini de aynı ana makinede tutun. Bir location bloğu içindeki add_header satırı, orada sunucu düzeyindeki başlıkların yerini alır (nginx headers modülü).
server {
listen 80;
server_name example.com;
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl;
server_name example.com;
# stage 1: change the value at each stage
add_header Strict-Transport-Security "max-age=300; includeSubDomains" always;
}Yalnızca kademeli artış beş haftadan uzun sürer. Gönderdikten sonra, hstspreload.org yeni bir girdinin kararlı Chrome’a ulaşmasının birkaç ay alabileceğini söyler; yani preload, bir yayın tarihi için asla hızlı çözüm değildir.
6. HSTS başlığınızı nasıl kontrol edersiniz?
Önemli üç yanıtı terminalden kontrol edin:
curl -sS -D - -o /dev/null http://example.com/
curl -sS -D - -o /dev/null https://example.com/
curl -sS -D - -o /dev/null https://www.example.com/İlki Location: https://example.com/ ile 301 veya 308 döndürmelidir; HSTS başlığı gerekmez, çünkü tarayıcılar düz HTTP üzerinden gelen HSTS’yi yok sayar. İkincisi, kendisi www’ye yönlendirme olsa bile üç yönergenin tamamını içeren strict-transport-security taşımalıdır. Üçüncüsü de başlığı göndermelidir; çünkü yalnızca www’yi açan bir ziyaretçi ana alan adının politikasını hiç almaz. Windows’ta curl.exe çağırın ve -o NUL kullanın.
Şu hatalara dikkat edin:
- İki HSTS başlığı. CDN ve kaynak sunucu ikisi de ekliyorsa RFC 6797 tarayıcılara yalnızca ilkini işlemelerini söyler ve hstspreload.org denetimi “Multiple HSTS headers” ifadesini hata olarak bildirir. Başlığın hangi katmana ait olduğuna karar verin.
- Yanlış yazılmış yönerge. Tarayıcılar tanımadıkları yönergeleri uyarı vermeden atar; bu yüzden sonunda s olmayan
includeSubdomain, alt alan adlarını sessizce kapsam dışı bırakır. - Bazı yanıtlarda eksik olması. Ana sayfada başlık vardır, ancak hata sayfalarında, API’de veya başka bir katmanın sunduğu statik dosyalarda yoktur.
Chrome DevTools’ta Network panelini açın, ardından tarayıcı politikayı sakladıktan sonra adres çubuğuna http://example.com/ yazın. İlk girdi, Non-Authoritative-Reason: HSTS ile 307 Internal Redirect gösterir: tarayıcı, sunucuya herhangi bir istek ulaşmadan kendiliğinden HTTPS’e geçmiştir. MDN başvurusu başlık sözdizimini listeler.
7. Preload listesi durumunuzu nasıl kontrol edersiniz?
- hstspreload.org. Alan adını forma girin. Alan adının preload edilmiş mi, beklemede mi yoksa listede değil mi olduğunu, güncel gereksinimlere göre hata ve uyarılarla birlikte gösterir. Beklemedeki bir alan adı henüz korunmaz: hâlâ bir tarayıcı sürümüyle yayımlanması gerekir.
- chrome://net-internals/#hsts. Chrome’da alan adını “Query HSTS/PKP domain” altına girin.
static_ile başlayan alanlar o tarayıcı sürümüne gömülü listeden,dynamic_ile başlayanlar tarayıcının aldığı başlıklardan gelir. “Delete domain security policies” yalnızca dinamik kısmı temizler; preload edilmiş girdi, bir tarayıcı güncellemesi onu kaldırana kadar durur. - Diğer tarayıcılar. Firefox, Safari ve Edge, Chrome’un listesinden türetilmiş kendi kopyalarını kendi takvimleriyle yayımlar; bu yüzden bir ekleme veya kaldırma onlara farklı zamanlarda ulaşabilir.
DNS, CDN veya sertifikalarınızda değişiklik yaptıktan sonra kontrolü yineleyin. hstspreload.org, gereksinimleri karşılamayan alan adlarının gelecekte otomatik olarak kaldırılabileceğini belirtir.
8. Listeden çıkmak: kaldırma adımları ve süre
- Ana alan adında geçerli sertifikayla HTTPS sunmaya devam edin; kaldırma formu bunu denetler.
preloadiçermeyen bir HSTS başlığı gönderin. hstspreload.org bu başlığı kaldırma talebi sayar. HSTS’yi hâlâ istiyorsanızincludeSubDomainsve uzun birmax-agetutun; HSTS’yi tümüyle kapatmak içinmax-age=0gönderin.- Alan adını kaldırma formundan gönderin.
- Beklerken kararı zorunlu kılan alt alan adına geçerli bir sertifika verin veya onu başka bir alan adına taşıyın: kaldırmanın çoğu Chrome kullanıcısına ulaşması 6 ila 12 hafta, diğer tarayıcılara ulaşması daha uzun sürebilir.
- Yeniden eklenmek istemiyorsanız
preloaddeğerini bir daha göndermeyin.
max-age=0 yalnızca HTTPS üzerinden ve yalnızca geri dönüp onu alan ziyaretçiler için işe yarar. En yavaş yola göre planlayın: gömülü girdiyi hâlâ taşıyan güncel olmayan bir tarayıcı ya da saklanmış iki yıllık bir politika, siz yön değiştirdikten çok sonra bile HTTPS’i zorlamaya devam edebilir.
9. Ücretsiz Yayına Hazırlık Snapshot’ı neyi gösterir?
Ücretsiz Yayına Hazırlık Snapshot’ı, kayıt gerektirmeden tek bir herkese açık alan adında sekiz pasif kontrol çalıştırır ve her kontrolün sonucuyla birlikte bir puan döndürür. Bunlardan ikisi HSTS’ye bakar:
- HTTP güvenlik başlıkları kontrolü, girdiğiniz alan adının ana sayfasını en fazla beş yönlendirmeden sonra okur. HTTPS hedefte eksik Strict-Transport-Security başlığını orta olarak derecelendirir ve gözlemlediği değeri gösterir.
- HTTPS yönlendirme kontrolü, yalın alan adı veya
https://adresi girdiğinizde 180 günün (15.552.000 saniye) altındaki birmax-agedeğerini düşük olarak işaretler. Planın 1 ila 3. aşamalarında bu sonuç beklenendir.
includeSubDomains yönergesini, preload yönergesini, alt alan adlarınızı veya liste durumunuzu denetlemez; bunlar için hstspreload.org’u ve yukarıdaki curl komutlarını kullanın. Başlık sonucunu önce açmak için aynı snapshot’ı çalıştıran ücretsiz güvenlik başlıkları kontrolünü kullanın. Sertifika tarafı için TLS sertifikaları ve HSTS rehberini okuyun; web sitesi yayın kontrol listesi ise HSTS’yi yönlendirmeler, DNS ve diğer yayın öncesi kontrollerle yan yana koyar.
Sık sorulan sorular
HSTS preload hâlâ öneriliyor mu?
Varsayılan olarak hayır. hstspreload.org HTTPS siteleri için HSTS önerir ama preload önermez; çünkü Chrome ve Safari http:// gezintileri için zaten HTTPS’i dener. Preload esas olarak etkin bir saldırgan bu yükseltmeleri engellediğinde koruma ekler ve listeden çıkmak aylar sürer.
HSTS preload listesi hangi max-age değerini gerektirir?
Ana alan adından gelen HTTPS yanıtlarında, includeSubDomains ve preload ile birlikte en az 31536000 saniye (bir yıl). hstspreload.org’daki örnek başlık 63072000, yani iki yıl kullanır. Değere aşamalarla ulaşın: 300, 604800 ve 2592000 saniye, sonra nihai değer.
Yalnızca www’yi veya tek bir alt alan adını preload edebilir miyim?
Hayır. Liste example.com gibi kayıtlı alan adını alır ve girdi, iç olanlar dahil altındaki her alt alan adını kapsar. Tek bir alt alan adı bile geçerli sertifikayla HTTPS sunamıyorsa alan adını preload etmeyin.
HSTS preload listesinden kaldırılma ne kadar sürer?
hstspreload.org, kaldırmanın çoğu Chrome kullanıcısına ulaşmasının 6 ila 12 hafta, diğer tarayıcılarda daha uzun sürebileceğini söyler. Önce başlıktan preload’u çıkarın, sonra kaldırma formunu gönderin. Başlığınızı saklayan ziyaretçiler, max-age süresi dolana kadar o politikayı korur.
Alan adımın preload listesinde olup olmadığını nasıl kontrol ederim?
hstspreload.org’a girin; preloaded, pending veya not preloaded durumunu ve gereksinimlere göre hataları gösterir. Chrome’da chrome://net-internals/#hsts, gömülü listeden gelen statik girdileri ve başlıklardan öğrenilen dinamik girdileri gösterir.
Kaynaklar ve ileri okuma
- HSTS Preload Listesi Başvurusu (gereksinimler ve öneriler)hstspreload.org
- HSTS Preload Listesinden Çıkarmahstspreload.org
- RFC 6797: HTTP Strict Transport Security (HSTS)www.rfc-editor.org
- MDN: Strict-Transport-Security başlığıdeveloper.mozilla.org
- Chromium Projeleri: HTTP Strict Transport Securitywww.chromium.org
- OWASP HTTP Strict Transport Security rehbericheatsheetseries.owasp.org
- nginx: ngx_http_headers_module (add_header)nginx.org
Sitelemetry yayın ekibi tarafından hazırlanmıştır. Konuyu derinleştirmek için bağlantılı kaynakları inceleyebilirsiniz.



