Ana içeriğe geç
DigiCert, Sectigo ve GeoTrust SSL sertifikaları
0850 259 76 06 WhatsApp Destek Bayi Ol
SSL Sertifikaları
Markalar
Kod İmzalama Entrust HSM Thales HSM LEI Kodu
Araçlar
Destek İletişim WhatsApp Sepet
Dil
Para birimi
SSL Sertifikası Al
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 aylar 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 siteyi HTTPS üzerinden bir sonraki ziyaretlerinde 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ş
Ali Yiğit
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ı sertifi

189 784 ₸ /yıl
Detaylar
EV Certum

Certum Premium EV SSL

Certum Premium EV SSL ile en kapsamlı kimlik doğrulamasını sağlayın. Genişletilmiş doğrulama, şirket

296 489 ₸ /yıl
Detaylar
EV DigiCert

DigiCert Basic EV SSL

DigiCert Basic EV SSL ile genişletilmiş doğrulama. Kurum adı sertifika ayrıntılarında görünür, $1.50

172 943 ₸ /yıl
Detaylar