Güvenlik25 Mayıs 2026 6 dk okuma

HSTS Nedir? HTTP Strict Transport Security Rehberi (2026)

HSTS nedir, nasıl çalışır ve neden önemlidir? HTTP Strict Transport Security başlığının SEO etkisi, güvenlik faydaları ve doğru yapılandırma rehberi.

İçindekiler

Siteniz HTTPS'e geçti, ama bir kullanıcı http:// yazarak gelirse ne olur? 301 yönlendirme yapar, doğru — ama bu yönlendirme sürecinde bağlantı kısa süreliğine güvensiz HTTP üzerinden geçer. HSTS, bu boşluğu kapatır.

HSTS Nedir?

HSTS (HTTP Strict Transport Security), web sunucusunun tarayıcıya "bu siteye her zaman HTTPS ile bağlan, HTTP denemesi bile yapma" komutunu veren bir HTTP güvenlik başlığıdır.

Tarayıcı bu başlığı bir kez aldıktan sonra belirlenen süre boyunca HTTP bağlantısını hiç denemez — doğrudan HTTPS ile bağlanır.

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

HSTS Olmadan Ne Olur?

Klasik HTTPS kurulumunda akış şöyle işler:

  1. Kullanıcı http://example.com yazar
  2. Tarayıcı HTTP isteği gönderir (güvensiz)
  3. Sunucu 301 ile https://example.com'a yönlendirir
  4. Bağlantı güvenli hale gelir

Problem: 2. ve 3. adım arasında güvensiz HTTP bağlantısı var. Bu pencerede:

  • Kötü niyetli kişi HTTP trafiğini dinleyebilir (man-in-the-middle)
  • Kullanıcı oturumunu ele geçirebilir
  • HTTP yanıtını manipüle edebilir (SSL stripping saldırısı)

HSTS ile Akış

  1. İlk ziyarette HTTPS bağlantısı kurulur
  2. Sunucu HSTS başlığı gönderir: "31536000 saniye (1 yıl) boyunca sadece HTTPS kullan"
  3. Tarayıcı bunu kaydeder
  4. Kullanıcı http://example.com yazdığında tarayıcı sunucuya sormadan HTTP isteğini HTTPS'e çevirir
  5. Güvensiz bağlantı hiç oluşmaz

HSTS Başlık Parametreleri

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

max-age

Saniye cinsinden süre. Bu süre boyunca tarayıcı yalnızca HTTPS kullanır.

max-age=300           → 5 dakika (test için)
max-age=86400         → 1 gün
max-age=2592000       → 30 gün
max-age=31536000      → 1 yıl (önerilen)
max-age=63072000      → 2 yıl (preload gereksinimi)

includeSubDomains

Bu direktif, HSTS politikasını tüm alt alanlara da uygular:

  • www.example.com → HSTS aktif
  • blog.example.com → HSTS aktif
  • api.example.com → HSTS aktif

Dikkat: Tüm subdomainlerin HTTPS sertifikası olduğundan emin olmadan bunu eklemeyin. Sertifikasız bir subdomain erişilemez hale gelir.

preload

Siteyi HSTS Preload listesine dahil etmeye hazır olduğunuzu belirtir. Bu parametre yalnızca preload başvurusu için gereklidir.

HSTS Preload Listesi

HSTS'nin bir zayıflığı: Tarayıcı HSTS başlığını almak için sitenizi en az bir kez HTTPS ile ziyaret etmelidir. İlk ziyarette hâlâ saldırıya açık bir pencere vardır.

HSTS Preload, bu sorunu çözer: Siteyi büyük tarayıcıların (Chrome, Firefox, Safari, Edge) gömülü listesine ekler. Kullanıcı siteyi daha hiç ziyaret etmemiş olsa bile tarayıcı HTTPS kullanır.

Preload Başvurusu

Gereksinimler:

  • Geçerli HTTPS sertifikası
  • Tüm HTTP trafiğini HTTPS'e yönlendirme
  • includeSubDomains direktifi zorunlu
  • preload direktifi zorunlu
  • max-age en az 31536000 (1 yıl)

Başvuru: hstspreload.org — Google tarafından yönetilir.

Uyarı: Preload geri almak zordur ve aylar sürer. Siz preload'u kaldırsanız bile tarayıcılar güncelleme yapana kadar listede kalırsınız. %100 HTTPS'e geçmeden başvurmayın.

HSTS'yi Nasıl Aktif Edersiniz?

Apache

.htaccess veya httpd.conf içine:

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

Nginx

nginx.conf içindeki HTTPS server bloğuna:

server {
    listen 443 ssl;
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
}

Not: HSTS başlığını HTTP (80) server bloğuna eklememelisiniz — tarayıcı HTTP yanıtlarındaki HSTS başlığını işlemez.

Cloudflare

SSL/TLS → Edge Certificates → HTTP Strict Transport Security (HSTS) bölümünden aktif edin. Cloudflare arayüzünden max-age, includeSubDomains ve preload parametrelerini ayarlayabilirsiniz.

Next.js / Nuxt.js

next.config.js veya nuxt.config.ts'de response header olarak ekleyin:

// nuxt.config.ts
export default defineNuxtConfig({
  routeRules: {
    '/**': {
      headers: {
        'Strict-Transport-Security': 'max-age=31536000; includeSubDomains'
      }
    }
  }
})

HSTS ve SEO

Doğrudan SEO Etkisi

HTTPS, Google'ın resmi sıralama faktörlerindendir. HSTS, HTTPS'i garanti altına alır:

  1. Duplicate content önlenir: http:// ve https:// versiyonlarının aynı anda erişilebilir olması canonical sorununa yol açar. HSTS ile HTTP tamamen engellenir.
  2. Güven sinyali: Google güvenli siteleri tercih eder. HSTS ekstra güvenlik katmanı ekler.
  3. PageSpeed: İlk HTTP isteğinin HTTPS'e yönlendirilmesi için harcanan süre elimine edilir.

HSTS Doğrulama

curl -I https://example.com

Çıktıda şu başlığı görmelisiniz:

strict-transport-security: max-age=31536000; includeSubDomains

Veya tarayıcıda F12 → Network → sitenin ana isteğini seçin → Response Headers.

SSL Labs Testi

ssllabs.com/ssltest adresine domain'inizi girin. A veya A+ notu almak için HSTS ve doğru SSL konfigürasyonu gereklidir.

Diğer Önemli HTTP Güvenlik Başlıkları

HSTS yanında şu başlıklar da önerilir:

Content-Security-Policy (CSP)

XSS saldırılarını önler. Hangi kaynaklardan içerik yüklenebileceğini belirtir:

Content-Security-Policy: default-src 'self'; script-src 'self' https://analytics.google.com

X-Content-Type-Options

Tarayıcının MIME type tahmin etmesini engeller:

X-Content-Type-Options: nosniff

X-Frame-Options

Sitenizin iframe içinde gösterilmesini engeller (clickjacking koruması):

X-Frame-Options: DENY

Referrer-Policy

Kullanıcı başka siteye geçtiğinde ne kadar referrer bilgisi paylaşılacağını belirler:

Referrer-Policy: strict-origin-when-cross-origin

Permissions-Policy

Tarayıcı API'larına erişimi kısıtlar (kamera, mikrofon, konum):

Permissions-Policy: camera=(), microphone=(), geolocation=()

HSTS Geri Alma

Eğer tüm alt domainleri HTTPS'e taşıyamıyorsanız ve includeSubDomains eklediyseniz, HSTS'yi kaldırmanız gerekebilir:

  1. max-age=0 olarak header'ı güncelleyin
  2. Tarayıcı bir sonraki ziyarette HSTS'yi temizler
  3. Preload listesindeyseniz hstspreload.org/removal üzerinden başvurun (haftalar alabilir)

Sık Sorulan Sorular

HSTS SSL sertifikasının yerini alır mı?
Hayır. HSTS, SSL sertifikasının HTTPS bağlantısını zorunlu kılmasını destekler — sertifikanın kendisi değildir. Geçerli bir SSL sertifikası şarttır.

HTTP'yi yönlendirmeden önce HSTS ekleyebilir miyim?
Hayır. Önce tüm HTTP trafiğinizi HTTPS'e yönlendirin, ardından HSTS ekleyin. Ters sıra erişilemeyen sayfalara yol açar.

HSTS sadece ana domain için mi?
includeSubDomains olmadan sadece ana domain için geçerlidir. Subdomainler için de geçerli olmasını istiyorsanız direktifi ekleyin.

Site taşındıktan sonra eski HSTS ne zaman temizlenir?
max-age süresi dolana kadar tarayıcı HSTS politikasını uygular. Acil temizleme için max-age=0 gönderin.


Sitenizin Güvenlik ve SEO Skorunu Kontrol Edin

Ücretsiz SEO analiz aracımız HTTPS durumunu, yönlendirme zincirlerini ve teknik SEO sorunlarını otomatik olarak kontrol eder.

İlgili içerikler: Canonical Tag Nedir?robots.txt Nedir?Google Search Console Kurulumu

Sitenizin SEO Skorunu Öğrenin

Bu rehberi uyguladıktan sonra sitenizi analiz edin ve ilerlemenizi ölçün.

Ücretsiz Analiz Et →

İlgili rehberler

Aynı konuya yakın diğer SEO yazıları.