X
Lütfen Ülke (Bölge) Seçiniz
Türkiye (Türkçe)Türkiye (Türkçe) Worldwide (English)Worldwide (English)
X
X
Lütfen Ülke (Bölge) Seçiniz
Türkiye (Türkçe)Türkiye (Türkçe) Worldwide (English)Worldwide (English)
X

HSTS Nedir? HTTPS'i Zorunlu Kılan Güvenlik Başlığını Adım Adım Etkinleştirme

AnasayfaYazılarWeb Güvenliği & SSLHSTS Nedir? HTTPS'i Zorunlu Kılan G...

Kısaca: HSTS nedir? HSTS (HTTP Strict Transport Security), sunucunun tarayıcıya "bu siteye bundan sonra yalnızca HTTPS ile bağlan" dediği bir güvenlik başlığıdır. Tarayıcı bu kuralı belirlediğiniz süre boyunca hatırlar, http ile yazılan adresleri kendiliğinden https'e çevirir ve geçersiz sertifika uyarısını geçmeye izin vermez. Doğru kullanım için önce tüm alan adlarınızın HTTPS ile çalıştığından emin olun, sonra başlığı kısa bir süreyle açıp kademeli olarak uzatın.

Sitenizi HTTPS'e taşıdınız ve http adreslerini 301 ile yönlendiriyorsunuz. Bu iyi bir başlangıç, ama ilk istek hâlâ şifresiz gider ve araya giren biri o yönlendirmeyi değiştirebilir. HSTS bu boşluğu kapatır. Bu yazıda HSTS'in nasıl çalıştığını, başlıktaki ayarların anlamını, siteyi kilitlemeden nasıl açılacağını ve preload listesine neden acele etmemeniz gerektiğini anlatıyoruz.

HSTS nedir ve nasıl çalışır?

HSTS, Strict-Transport-Security adlı bir HTTP yanıt başlığıdır ve RFC 6797 ile tanımlanmıştır. Tarayıcı bu başlığı HTTPS üzerinden aldığında alan adını kendi HSTS listesine ekler. MDN belgelerine göre bundan sonra:

  • O alan adına http ile yapılan her istek, gönderilmeden önce https'e çevrilir; 80 numaralı port 443 olur.
  • Sertifika geçersizse tarayıcı kullanıcıya uyarıyı geçip devam etme seçeneği sunmaz.
  • Kural, başlıktaki max-age süresi boyunca geçerlidir ve her yeni yanıtta bu süre yeniden başlar.

Önemli bir ayrıntı: Başlık şifresiz HTTP yanıtında gönderilirse tarayıcı onu yok sayar. Ayrıca HSTS bir IP adresine değil, yalnızca alan adına uygulanır.

HSTS hangi saldırılara karşı korur?

HSTS'in asıl hedefi, kullanıcı ile sunucu arasına giren saldırgandır. Örneğin bir kafede sahte bir Wi-Fi ağına bağlandığınızı düşünün. HSTS yoksa tarayıcının gönderdiği ilk http isteği okunabilir ve saldırgan https'e yönlendirmeyi engelleyebilir. hstspreload.org HSTS'in koruduğu durumları şöyle sıralar:

  • Protokol düşürme: Saldırgan http'den https'e yönlendirmeyi yakalayıp tarayıcıyı şifresiz bağlantıda tutamaz.
  • Çerez ele geçirme: Şifresiz isteklerde çerezler görülebilir ve değiştirilebilir; HSTS bu istekleri baştan engeller.
  • Gezinti bilgisinin sızması: http bağlantısına tıklandığında adresin yolu ağda açıkça görünmez, çünkü istek doğrudan https ile gider.

HSTS, sitenizin uygulama katmanını korumaz. Form saldırıları veya kötü amaçlı istekler için WAF (web uygulama güvenlik duvarı) gibi ayrı önlemler gerekir.

HSTS başlığındaki ayarlar ne anlama gelir?

AyarAnlamıDikkat edilecek nokta
max-ageTarayıcının kuralı kaç saniye hatırlayacağıUzun süre, hata yaparsanız geri dönüşün de uzun süreceği anlamına gelir
includeSubDomainsKuralı tüm alt alan adlarına da uygularHTTPS'i olmayan bir alt alan adı erişilemez hale gelir
preloadTarayıcılara gömülü preload listesine girme isteğini belirtirVarsayılan olarak eklenmemeli; listeden çıkmak aylar sürer

HSTS'i adım adım nasıl etkinleştirirsiniz?

HSTS'i kademeli açma: büyüyen max-age aşamalı gösterge ve biri HTTPS'e hazır olmayan alt alan adı ağacı

  1. HTTPS'i tamamlayın: Geçerli bir SSL sertifikası kurulu olsun ve tüm http adresleri 301 ile https'e yönlensin. Ayrıntılar için HTTP'den HTTPS'e geçiş rehberimize bakabilirsiniz.
  2. Alt alan adlarını listeleyin: www, mail, panel, test gibi tüm alt alan adlarının, dışarıya açık olmayanlar dahil, HTTPS ile çalıştığını kontrol edin.
  3. Kısa bir süreyle başlayın: Başlığı önce 5 dakikalık (300 saniye) bir süreyle ekleyin. Apache'de mod_headers ile ve Nginx'te şu satırlar kullanılır:
Header always set Strict-Transport-Security "max-age=300; includeSubDomains"
add_header Strict-Transport-Security "max-age=300; includeSubDomains" always;
  1. Süreyi kademeli uzatın: hstspreload.org 1 hafta (604800) ve 1 ay (2592000) aşamalarını önerir. Her aşamada bozulan sayfa olup olmadığını izleyin ve bir sonraki aşamaya geçmeden önce o aşamanın süresi kadar bekleyin.
  2. Uzun süreye geçin: Sorun çıkmazsa süreyi 1 yıl (31536000) gibi uzun bir değere çıkarın. Sabit bir değer kullandığınızda her ziyaret süreyi yeniden başlatır.

HSTS preload listesine girmeli misiniz?

HSTS'in bir zayıf noktası vardır: Tarayıcı siteye ilk kez bağlanırken kuralı henüz bilmez. Preload listesi bu ilk ziyareti de korumak için tarayıcılara gömülü bir alan adı listesidir. Listeye başvurmak için geçerli sertifika, aynı alan adında http'den https'e yönlendirme, tüm alt alan adlarında HTTPS ve ana alan adında en az 1 yıllık max-age ile includeSubDomains ve preload içeren bir başlık gerekir.

Yine de hstspreload.org, HSTS'i önerirken preload için aynı şeyi söylemez; birçok tarayıcı http gezinmelerini zaten https'e yükseltmeye çalıştığı için preload'un ek faydası sınırlıdır. Listeden çıkmak ise aylar sürebilir. Tüm alt alan adlarınızın uzun vadede HTTPS ile çalışacağından emin değilseniz preload eklemeyin.

HSTS çalışıyor mu, nasıl kontrol edilir?

  • Komut satırı: curl -sI https://alanadiniz.com | grep -i strict-transport-security komutu başlığı ve değerini gösterir.
  • Tarayıcı geliştirici araçları: Sayfayı açın, ağ (Network) sekmesinde ilk isteği seçin ve yanıt başlıklarında strict-transport-security satırını arayın.
  • Chrome: chrome://net-internals/#hsts sayfasında alan adınızı sorgulayarak tarayıcının kaydettiği kuralı görebilirsiniz.

HSTS ile ilgili sık yapılan hatalar

  • İlk günden uzun süre ve preload: Hazır olmayan bir alt alan adı, ziyaretçiler için aylarca açılmaz hale gelebilir.
  • Başlığı http yanıtına eklemek: Tarayıcı bunu yok sayar; başlık yalnızca HTTPS yanıtlarında işe yarar.
  • Sertifika yenilemeyi kaçırmak: HSTS açıkken süresi dolmuş bir sertifika, ziyaretçinin uyarıyı geçmesine izin vermez ve site tamamen erişilemez olur. Sertifikayı kimin verebileceğini sınırlamak için CAA kaydını da gözden geçirin.
  • Kapatmayı yanlış yapmak: HSTS'i kapatmak için başlığı silmek yetmez; HTTPS üzerinden max-age=0 göndermeniz gerekir.

Özet

HSTS, HTTPS'e geçmiş bir sitenin son güvenlik adımıdır: Tarayıcıya siteye yalnızca şifreli bağlantıyla gelmesini söyler ve sertifika hatalarının geçilmesini engeller. Önce HTTPS'i ve yönlendirmeleri tamamlayın, alt alan adlarını kontrol edin, başlığı kısa bir süreyle açıp aşamalı olarak uzatın ve preload'u ancak uzun vadeli bir kararla düşünün. ÇAP Hosting'teki sitenizde başlığı nereye ekleyeceğinizden emin değilseniz destek ekibimizle birlikte ilerleyebilirsiniz.

Sık Sorulan Sorular

HSTS, SEO'yu etkiler mi?

HSTS doğrudan bir sıralama ayarı değildir. Ancak ziyaretçilerin ve arama motorlarının sitenin HTTPS sürümüne ulaşmasını tutarlı hale getirir. HTTPS'e geçişin kendisi için 301 yönlendirmeleri yine gereklidir.

HSTS'i açtıktan sonra geri alabilir miyim?

Evet. HTTPS üzerinden max-age=0 içeren başlığı gönderdiğinizde tarayıcılar kuralı siler. Ancak bu, yalnızca siteyi tekrar ziyaret eden tarayıcılarda etkili olur; preload listesinden çıkmak ise aylar sürebilir.

max-age için hangi değeri seçmeliyim?

Önce 300 saniye ile başlayın, sonra 1 hafta ve 1 ay aşamalarına geçin. Sorun yoksa 1 yıl gibi uzun bir değer kullanın. Preload başvurusu için en az 31536000 saniye gerekir.

HSTS, SSL sertifikasının yerine geçer mi?

Hayır. HSTS, geçerli bir SSL sertifikası ve çalışan bir HTTPS kurulumu olmadan kullanılamaz. Yalnızca tarayıcının her zaman bu güvenli bağlantıyı kullanmasını sağlar.


Powered by WISECP
Top