DataSSL Panel v2 Yayında! — Yeni DataSSL Panel v2 ile daha modern, hızlı ve kullanıcı dostu bir deneyim sunuyoruz.Yenilikler:Modern ve responsive ta...
Anasayfa İletişim
SSL Güvenliği

HSTS Hatası ve Strict-Transport-Security Yapılandırma Rehberi

HSTS (HTTP Strict Transport Security) hataları, yanlış yapılandırma ve süre dolumu sorunları. HSTS preload, max-age ayarları ve yaygın hataların çözümü.

9 dk okuma

HSTS Nedir?

HSTS (HTTP Strict Transport Security), bir web sitesinin tarayıcıya "bu siteye yalnızca HTTPS üzerinden bağlan" talimatı verdiği güvenlik mekanizmasıdır. HSTS aktif bir sitede, tarayıcı HTTP bağlantı denemelerini otomatik olarak HTTPS'e yükseltir — sunucuya bile HTTP isteği gitmez.

HSTS Nasıl Çalışır?

  1. Tarayıcı sitenizi ilk kez HTTPS ile ziyaret eder
  2. Sunucu Strict-Transport-Security header'ı gönderir
  3. Tarayıcı bu bilgiyi max-age süresi boyunca kaydeder
  4. Sonraki ziyaretlerde HTTP linkleri otomatik HTTPS'e yükseltilir
# Temel HSTS header
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

Yaygın HSTS Hataları

Hata 1: ERR_SSL_PROTOCOL_ERROR (HSTS Kaynaklı)

HSTS aktifken SSL sertifikası süresi dolarsa veya sorun yaşanırsa, tarayıcı siteyi HTTP ile de açmayı reddeder. Normal bir SSL hatasından farklı olarak, kullanıcı "Yine de devam et" seçeneğini göremez.

Çözüm

  • SSL sertifikasını hemen yenileyin — HSTS varken sertifikasız kalmak siteyi tamamen erişilemez yapar
  • Chrome'da chrome://net-internals/#hsts adresinden domain'in HSTS kaydını silebilirsiniz (yalnızca kendi tarayıcınızda)

Hata 2: Subdomain'lerde SSL Yok ama includeSubDomains Aktif

includeSubDomains direktifi tüm alt alan adlarında HTTPS zorunlu kılar. Bir subdomain'de SSL yoksa o subdomain erişilemez olur.

Çözüm

  • Tüm subdomain'lere SSL sertifikası yükleyin (Wildcard SSL ile tek seferde)
  • Veya includeSubDomains direktifini kaldırın

Hata 3: HTTP Sayfadan HSTS Gönderme

HSTS header'ı yalnızca HTTPS yanıtlarda geçerlidir. HTTP yanıtta gönderilen HSTS tarayıcılar tarafından yok sayılır.

Doğru Yapılandırma

# Nginx
server {
    listen 80;
    server_name example.com;
    return 301 https://$host$request_uri;  # Önce HTTPS'e yönlendir
}

server {
    listen 443 ssl;
    server_name example.com;
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;  # HSTS burada
}

Hata 4: max-age Çok Kısa veya Sıfır

max-age=0 HSTS'i devre dışı bırakır. Çok kısa süreler (birkaç saat) güvenliği zayıflatır.

Önerilen Ayarlar

Aşamamax-ageAçıklama
Test300 (5 dakika)İlk kurulumda güvenli test
Geçiş604800 (1 hafta)Sorun yoksa artırın
Üretim31536000 (1 yıl)Standart üretim değeri
Preload31536000+ (1 yıl+)HSTS preload listesi için minimum

HSTS Preload Nedir?

HSTS Preload, domain'inizi Chrome'un (ve diğer tarayıcıların) yerleşik HSTS listesine ekler. Bu sayede ilk ziyarette bile HTTP bağlantı denemesi yapılmaz.

Preload Gereksinimleri

  • Geçerli SSL sertifikası
  • HTTP → HTTPS yönlendirmesi
  • max-age en az 31536000 (1 yıl)
  • includeSubDomains direktifi
  • preload direktifi

Başvuru: hstspreload.org adresinden domain'inizi gönderebilirsiniz.

⚠️ Uyarı: HSTS preload listesinden çıkmak haftalar alabilir. Emin olmadan başvurmayın.

HSTS Devre Dışı Bırakma

Acil durumlarda HSTS'i devre dışı bırakmak için:

# max-age=0 gönderin
add_header Strict-Transport-Security "max-age=0" always;
# Tarayıcılar max-age süresi dolduğunda HSTS kaydını silecektir

Sunucu Bazında HSTS Yapılandırması

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

# Apache (.htaccess veya VirtualHost)
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

# IIS (web.config)
<customHeaders>
    <add name="Strict-Transport-Security" value="max-age=31536000; includeSubDomains; preload" />
</customHeaders>

Sonuç

HSTS, web sitenizin güvenliğini önemli ölçüde artıran güçlü bir mekanizmadır. Ancak doğru yapılandırılmadığında erişim sorunlarına neden olabilir. HSTS aktivasyondan önce tüm subdomain'lerde SSL sertifikası olduğundan emin olun, max-age değerini aşamalı olarak artırın ve preload listesine eklenmeden önce yapılandırmanızı iyice test edin.

Bu yazıyı paylaş
Yazar

Ali Yiğit

Önerilen SSL Sertifikaları

Tüm Ürünler
EV Certum

Certum Premium EV Multi-Domain SSL

Certum Premium EV Multi-Domain SSL ile birden fazla domaini EV düzeyinde koruyun. Şirket adı görünür

$419,00 /yıl
Detaylar
EV Certum

Certum Premium EV SSL

Certum Premium EV SSL ile en yüksek güven seviyesini sağlayın. Genişletilmiş doğrulama, şirket adı g

$339,00 /yıl
Detaylar
EV DigiCert

DigiCert Basic EV SSL

DigiCert Basic EV SSL ile genişletilmiş doğrulama. Tarayıcıda kurum adı görünür, $1.500.000 garanti,

$420,12 /yıl
Detaylar