HSTS (HTTP Strict Transport Security), sunucunuzun HTTPS yanıtlarına Strict-Transport-Security başlığını eklemesiyle etkinleşir. Güvenli geçiş için önce tüm siteyi ve alt alan adlarını HTTPS'e taşır, kısa bir max-age ile başlar, sorun görmezseniz değeri en az bir yıla (31536000 saniye) çıkarır ve koşulları sağlıyorsanız tarayıcı preload listesine başvurursunuz.
HSTS nedir ve neden önemlidir?
HSTS, RFC 6797 ile tanımlanmış bir mekanizmadır. Tarayıcı bu başlığı bir kez aldığında, belirtilen süre boyunca o alan adına yalnızca HTTPS ile bağlanır. Kullanıcı adres çubuğuna http:// yazsa veya eski bir bağlantıya tıklasa bile istek tarayıcı içinde HTTPS'e çevrilir.
Bu sayede:
- Ortak Wi-Fi gibi güvenilmeyen ağlarda bağlantının şifresiz HTTP'ye düşürülmesi (SSL stripping) engellenir.
- Sertifika hatalarında kullanıcı "yine de devam et" seçeneğiyle uyarıyı geçemez.
- İlk HTTP isteğinin yarattığı küçük risk penceresi, preload ile tamamen kapanabilir.
Ön koşullar
- Geçerli ve otomatik yenilenen bir TLS sertifikanız olmalı.
- Tüm sayfalar HTTPS üzerinden sorunsuz çalışmalı; karışık içerik (mixed content) bulunmamalı.
- HTTP istekleri kalıcı (301) yönlendirmeyle HTTPS'e yönlendirilmeli.
includeSubDomainskullanacaksanız tüm alt alan adları (ör. eski bir test sunucusu, e-posta web arayüzü) HTTPS desteklemeli.
Adım adım etkinleştirme
1. Kısa süreli deneme
İlk olarak beş dakikalık bir süreyle başlayın:
Strict-Transport-Security: max-age=300
Nginx'te:
add_header Strict-Transport-Security "max-age=300" always;
Apache'de:
Header always set Strict-Transport-Security "max-age=300"
2. Süreyi aşamalı artırın
Birkaç gün sorun yaşanmazsa değeri bir haftaya (604800), ardından bir aya (2592000) çıkarın. Her aşamada uygulama günlüklerini ve kullanıcı geri bildirimlerini izleyin.
3. Alt alan adlarını dahil edin
Tüm alt alan adlarının HTTPS ile çalıştığını doğruladıktan sonra:
Strict-Transport-Security: max-age=31536000; includeSubDomains
4. Preload başvurusu (isteğe bağlı)
Preload listesi, tarayıcılara gömülü bir HSTS listesidir; siteye ilk kez gelen kullanıcıları da korur. hstspreload.org adresinde belirtilen başlıca koşullar şunlardır:
| Koşul | Açıklama |
|---|---|
| Geçerli sertifika | Alan adı geçerli bir sertifika sunmalı |
| HTTP → HTTPS yönlendirme | Aynı ana makinede HTTP'den HTTPS'e yönlendirme yapılmalı |
| Tüm alt alan adları HTTPS | Özellikle www alt alan adı DNS'te varsa |
max-age | En az 31536000 saniye (1 yıl) |
includeSubDomains | Başlıkta bulunmalı |
preload | Başlıkta bulunmalı |
Başlığın son hâli:
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
Geçiş öncesi kontrol listesi
HSTS'yi açmadan önce aşağıdaki maddeleri tek tek işaretleyin:
-DNS bölgenizdeki tüm alt alan adlarının listesini çıkardınız mı? Unutulmuş test, eski kampanya veya iç sistem alt alan adları en sık sorun kaynağıdır. -Her alt alan adı geçerli bir sertifikayla HTTPS üzerinden yanıt veriyor mu? -Sertifika yenileme otomatik mi ve süre sonu için uyarı tanımlı mı? -Sayfalarınızda HTTP ile yüklenen görsel, betik veya stil dosyası kaldı mı? -CDN veya yük dengeleyici kullanıyorsanız başlık hangi katmanda ekleniyor? Aynı başlığın iki kez gönderilmediğinden emin olun. -Değişikliği geri alma planınız hazır mı?
CDN kullanan sitelerde başlık değişikliğinden sonra CDN önbelleğini temizlemek, yeni başlığın tüm ziyaretçilere ulaşmasını hızlandırır. Ayrıca yalnızca ana sayfada değil, tüm yanıtlarda başlığın gönderildiğini birkaç farklı sayfa üzerinde kontrol edin.
Sık yapılan hatalar
- Başlığı HTTP yanıtına eklemek: Tarayıcılar HTTP üzerinden gelen HSTS başlığını yok sayar.
- Doğrudan bir yıllık süreyle başlamak: Sorun çıkarsa geri dönüş zorlaşır.
- Alt alan adlarını kontrol etmeden
includeSubDomains: Unutulmuş bir iç sistem erişilemez olabilir. - Yönlendirme zincirleri:
http://ornek.comadresinin öncehttps://ornek.com'a, sonrawwwsürümüne yönlenmesi preload koşulları için doğru sıralamadır; doğrudanhttp://wwwsürümüne yönlendirmek koşulu bozar. - Sertifika yenilemeyi ihmal etmek: HSTS etkinken süresi dolmuş sertifika, sitenin tamamen erişilemez olmasına yol açar.
Nasıl doğrularım?
HSTS kontrol aracımız başlığın varlığını, max-age değerini ve preload uygunluğunu denetler. Sertifikanızı SSL kontrol aracıyla, genel yapılandırmayı ise web sitesi güvenlik testi ile doğrulayabilirsiniz.
Sık sorulan sorular
HSTS başlığı HTTP yanıtında gönderilirse ne olur?
RFC 6797'ye göre tarayıcılar şifresiz HTTP üzerinden gelen HSTS başlığını yok sayar. Başlık yalnızca geçerli bir sertifikayla kurulmuş HTTPS bağlantısında gönderildiğinde dikkate alınır.
HSTS'yi geri almak mümkün mü?
Mümkündür ancak zaman alır. max-age=0 değeriyle başlık göndermek, siteyi yeniden ziyaret eden tarayıcılarda kaydı siler. Preload listesinden çıkmak ise tarayıcı sürümlerinin güncellenmesini gerektirdiği için aylar sürebilir.
Preload listesine girmek zorunlu mu?
Zorunlu değildir. Preload, siteye ilk kez giren kullanıcıları da korur; ancak tüm alt alan adlarının kalıcı olarak HTTPS desteklemesini gerektirdiği için ancak bu koşuldan emin olduğunuzda başvurmalısınız.
Sık sorulan sorular
HSTS başlığı HTTP yanıtında gönderilirse ne olur?
RFC 6797'ye göre tarayıcılar şifresiz HTTP üzerinden gelen HSTS başlığını yok sayar. Başlık yalnızca geçerli bir sertifikayla kurulmuş HTTPS bağlantısında gönderildiğinde dikkate alınır.
HSTS'yi geri almak mümkün mü?
Mümkündür ancak zaman alır. max-age=0 değeriyle başlık göndermek, siteyi yeniden ziyaret eden tarayıcılarda kaydı siler. Preload listesinden çıkmak ise tarayıcı sürümlerinin güncellenmesini gerektirdiği için aylar sürebilir.
Preload listesine girmek zorunlu mu?
Zorunlu değildir. Preload, siteye ilk kez giren kullanıcıları da korur; ancak tüm alt alan adlarının kalıcı olarak HTTPS desteklemesini gerektirdiği için ancak bu koşuldan emin olduğunuzda başvurmalısınız.
Kaynaklar
İlgili içerikler
HSTS Nedir? HTTP Strict Transport Security Nasıl Çalışır?
HSTS, bir web sitesinin tarayıcıya kendisine yalnızca HTTPS ile bağlanılmasını bildirdiği güvenlik mekanizmasıdır. Stri…
HTTP Güvenlik Başlıkları Rehberi: Hangi Başlık Ne İşe Yarar?
HTTP güvenlik başlıkları, tarayıcıya sitenizi nasıl güvenli işleyeceğini söyleyen yanıt başlıklarıdır. Temel set Strict…
KOBİ'ler İçin Siber Güvenlik Kontrol Listesi: İlk 12 Adım
Küçük işletmeler için en etkili başlangıç; varlık envanteri, MFA, güncellemeler, test edilmiş yedekler, e-posta kimlik…
KVKK Kapsamında Veri İhlali Bildirimi Nasıl Yapılır?
Kişisel veri ihlalinde veri sorumlusu, KVKK m.12/5 ve Kurul'un 2019/10 sayılı kararı uyarınca ihlali öğrendiği andan it…