Tanım
HSTS (HTTP Strict Transport Security), bir web sitesinin tarayıcıya “bu alan adına belirlenen süre boyunca yalnızca HTTPS ile bağlan” talimatı verdiği güvenlik mekanizmasıdır. Sunucunun gönderdiği Strict-Transport-Security yanıt başlığıyla etkinleşir; HTTP’ye düşürme (SSL stripping) saldırılarını ve kullanıcının sertifika uyarısını geçmesini engeller.
HSTS başlığı nasıl eklenir?
HSTS, yalnızca HTTPS yanıtlarına eklenen tek bir HTTP başlığıyla etkinleştirilir. Başlığın üç parametresi vardır: max-age (saniye cinsinden süre), includeSubDomains (tüm alt alan adlarını kapsar) ve preload (tarayıcıların ön yükleme listesine başvuru için).
# Nginx
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
# Apache / LiteSpeed (.htaccess)
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"Başlık HTTP yanıtlarında yok sayılır; bu yüzden önce HTTP’den HTTPS’e kalıcı yönlendirme kurulmalıdır. Tarayıcı başlığı ilk HTTPS ziyaretinde öğrendiği için, siteye ilk kez giren bir kullanıcının ilk isteği hâlâ HTTP olabilir; preload listesi bu boşluğu kapatır.
HSTS kullanmanın riskleri nelerdir?
HSTS etkinleştikten sonra tarayıcı, max-age süresi dolana kadar siteye HTTP ile bağlanmayı reddeder ve sertifika hatalarında kullanıcıya “yine de devam et” seçeneği sunmaz. Sertifikanın süresi dolarsa ya da HTTPS desteklemeyen bir alt alan adı varsa site erişilemez hâle gelir. Güvenli bir geçiş için:
- Kısa bir süreyle başlayın (ör.
max-age=300) ve tüm sayfaların sorunsuz açıldığını doğrulayın. includeSubDomainseklemeden önce tüm alt alan adlarının geçerli SSL sertifikasına sahip olduğunu kontrol edin.- Süreyi kademeli olarak bir yıla çıkarın.
preloadlistesine ancak geri dönmeyeceğinizden eminseniz başvurun; listeden çıkarılmak aylar sürebilir.
HTTPS yapılandırmanızı SSL testi araçlarıyla doğrulayabilirsiniz.