HSTS Nedir, HTTPS Yönlendirmesi Nasıl Kalıcı Hale Gelir?

Haberci

SEO UZMANI
Yönetici
Katılım
21 May 2023
Mesajlar
550
Tepki
17
Puan
18
820




SSL sertifikasını kurup HTTP'den HTTPS'e yönlendirme eklemek çoğu zaman "artık güvenliyiz" diye düşünmeye yeter. Ama bu yönlendirme tek başına, bir kullanıcının adres çubuğuna hâlâ şifrelenmemiş bir bağlantı yazması ya da eski bir linke tıklaması durumunda, o ilk isteğin şifrelenmemiş gitmesini engellemez; araya giren biri o ilk isteği yakalayabilir.

HSTS, tam da bu ilk isteği güvenli hale getirmek için var. Bu yazı HSTS'nin ne yaptığını, nasıl açıldığını ve kendi başına yeterli olmadığı noktayı resmî standart belgesine dayanarak anlatıyor.

HSTS tam olarak neyi zorunlu kılıyor?​


RFC 6797, HTTP Strict Transport Security'yi, bir web sitesinin kendisini yalnızca güvenli bağlantılar üzerinden erişilebilir olarak beyan etmesini sağlayan bir mekanizma olarak tanımlıyor. Sunucu bunu `Strict-Transport-Security` yanıt başlığıyla, yalnızca zaten güvenli (HTTPS) bir bağlantı üzerinden bildiriyor; başlık bir `max-age` süresi ve isteğe bağlı olarak alt alan adlarını da kapsayan `includeSubDomains` yönergesini taşıyor.

Tarayıcı bu başlığı bir kez gördükten sonra, belirtilen süre boyunca o alan adına yapılan her bağlantı denemesini otomatik olarak HTTPS'e çeviriyor; kullanıcı adres çubuğuna şifrelenmemiş bir adres yazsa bile tarayıcı isteği hiç şifrelenmemiş göndermeden önce müdahale ediyor. Bu, sunucu tarafında yapılan bir 301 yönlendirmesinden temelde farklı: yönlendirme isteğin gitmesini beklerken, HSTS isteği tarayıcı düzeyinde daha en baştan HTTPS'e çeviriyor.

"İlk ziyaret" sorunu ve RFC'nin kendi uyarısı​


RFC'nin kendisi bu mekanizmanın bir açığını da adıyla tanımlıyor: "Bootstrap MITM Vulnerability". Bu, bir kullanıcının daha önce hiç ziyaret etmediği bir HSTS sitesine şifrelenmemiş bir bağlantıyla bağlanması durumunda ortaya çıkıyor; tarayıcı henüz o alan adı için `Strict-Transport-Security` başlığını görmediği için ilk bağlantı denemesi şifresiz gidebiliyor ve bu ilk istek araya girme saldırısına açık kalıyor. RFC bu durumu kabul ediyor ve bunu tamamen ortadan kaldırmanın tek yolunun tarayıcıya alan adını önceden, hiç ziyaret edilmeden tanıtmak olduğunu ima ediyor. Bu, HSTS'nin sitenizde etkin olmasının, kullanıcılarınızın ilk bağlantısını otomatik olarak koruduğu anlamına gelmediğini gösteriyor; koruma ancak tarayıcı başlığı bir kez gördükten sonra devreye giriyor.

HSTS ile yönlendirme birbirinin yerini tutmaz​


Sunucu tarafında HTTP isteklerini 301 ile HTTPS'e yönlendirmek yaygın bir uygulama, ama bu yönlendirme de ilk isteği koruyamıyor; istek önce şifresiz olarak sunucuya ulaşıyor, ancak ondan sonra HTTPS'e yönlendiriliyor. HSTS bu sırayı tersine çeviriyor: tarayıcı isteği hiç göndermeden, adres çubuğuna yazılır yazılmaz HTTPS'e çeviriyor. Bu yüzden iki mekanizma birbirinin yerini tutmuyor, birbirini tamamlıyor; yönlendirme HSTS başlığını hiç görmemiş yeni ziyaretçiler için de gerekli.

Bu açığı önceden listeye eklemek: HSTS preload​


Chrome'un HSTS preload sitesi, bu ilk ziyaret sorununu farklı bir yolla çözüyor: alan adınızı tarayıcıya önceden, hiç ziyaret edilmeden gömülü bir listeye ekletebiliyorsunuz. Siteye göre bu listeye girebilmek için sunucunun geçerli bir sertifika sunması, aynı host üzerinde HTTP'den HTTPS'e yönlendirme yapması, tüm alt alan adlarını HTTPS üzerinden sunması ve `Strict-Transport-Security` başlığında en az 31536000 saniyelik (bir yıl) bir `max-age`, `includeSubDomains` ve `preload` yönergelerinin birlikte bulunması gerekiyor.

Site ayrıca bu listeden çıkmanın kolay olmadığını, bir değişikliğin kullanıcılara ulaşmasının aylar sürebileceğini de belirtiyor; yani preload listesine girmek geri dönüşü kolay olmayan bir karar. Alt alan adlarınızdan biri (ör. eski bir test ortamı) HTTPS'i düzgün sunmuyorsa, preload listesine girdikten sonra o alt alan adı da zorla HTTPS'e geçirilir ve erişilemez hale gelebilir; bu yüzden `includeSubDomains` eklemeden önce tüm alt alan adlarının gerçekten hazır olduğundan emin olunmalı.

HSTS'yi SSL kurulumunun neresine koymalı?​


HSTS, geçerli bir SSL sertifikası zaten kurulu olmadan hiçbir işe yaramaz; önce sertifikanın doğru kurulduğundan emin olmak gerekir. SSL'in temel işlevini SSL nedir, SSL ne işe yarar yazımızda, cPanel üzerinden kurulum adımlarını ise cPanel'de SSL nasıl kurulur yazımızda ayrı olarak ele almıştık; HSTS başlığını eklemek bu kurulumdan sonraki bir adım.

HTTPS'in yalnız güvenlik değil arama sıralaması açısından da bir sinyal taşıdığını SSL ve SEO ilişkisini ele aldığımız yazımızda işlemiştik; HSTS'nin HTTPS'i kalıcı kılması bu sinyali daha tutarlı hale getiriyor, çünkü tarayıcı artık siteye hiçbir zaman şifresiz bağlanmayı denemiyor.

Sık Sorulan Sorular​


HSTS nedir?
Bir sunucunun, tarayıcılara kendisine yalnızca HTTPS üzerinden bağlanılmasını bildirdiği bir güvenlik başlığıdır; başlık görüldükten sonra tarayıcı belirtilen süre boyunca HTTP bağlantı denemelerini otomatik olarak HTTPS'e çevirir.

HSTS header nedir?
Sunucunun HTTPS yanıtlarına eklediği `Strict-Transport-Security` adlı yanıt başlığıdır; süreyi belirten `max-age` ve alt alan adlarını da kapsamak isteyip istemediğinizi belirten `includeSubDomains` gibi yönergeler taşır.

HSTS hatası nasıl düzeltilir?
Çoğu durumda bu, sertifikanın süresinin dolması veya alt alan adlarından birinin HTTPS'i düzgün sunmaması gibi bir SSL yapılandırma sorunudur; önce sertifikanın ve tüm alt alan adlarının HTTPS üzerinden doğru çalıştığından emin olunmalıdır.

HSTS hatası nedir?
Genelde bir tarama aracının, sitenin `Strict-Transport-Security` başlığını hiç göndermediğini ya da eksik/hatalı gönderdiğini bildirmesidir; bu durumda site HTTPS'e yönlendirse bile ilk bağlantı isteği için tarayıcı düzeyinde bir zorunluluk oluşmaz.

Özetle​


HSTS, HTTP'den HTTPS'e yönlendirmenin bırakabileceği ilk bağlantı boşluğunu kapatan bir sunucu beyanı; ama bu beyanın etkili olması için tarayıcının onu en az bir kez güvenli bir bağlantı üzerinden görmüş olması gerekiyor. Bu ilk görme şartını tamamen ortadan kaldırmak isteyenler için preload listesi var, ama listeye girmek kolayca geri alınabilecek bir adım değil; özellikle `includeSubDomains` eklemeden önce tüm alt alan adlarının HTTPS'e hazır olduğundan emin olmak gerekiyor.

Sitenizde `Strict-Transport-Security` başlığını hiç kontrol ettiniz mi, `max-age` değeriniz ne kadar uzun?

Güncelleme: 25 Ağustos 2026.



Dijital Dünyanıza Yön Veren Pusula
 

Ekli dosyalar

  • banner_05.jpg
    banner_05.jpg
    5 KB · Görüntüleme: 0
Geri
Üst