HSTS ayarı yanlış yapıldığında SSL, yönlendirme ve alt alan adı sorunları nedeniyle site erişimi kesilebilir. Güvenli yapılandırma için dikkat edilmesi gerekenleri öğrenin.
HSTS, tarayıcıya bir web sitesine belirli süre boyunca yalnızca HTTPS üzerinden bağlanması gerektiğini söyleyen güçlü bir güvenlik mekanizmasıdır. Doğru yapılandırıldığında kullanıcıyı güvenli bağlantıya zorlar; ancak yanlış ayarlandığında siteye erişimi tamamen kesebilecek kadar etkili olabilir. Özellikle SSL sertifikası, yönlendirme kurgusu ve hosting tarafındaki sunucu yapılandırması birlikte değerlendirilmeden yapılan değişiklikler, ziyaretçilerin “siteye ulaşılamıyor” benzeri hatalarla karşılaşmasına neden olabilir.
HSTS, HTTP Strict Transport Security başlığının kısaltmasıdır. Sunucu, tarayıcıya şu mesajı verir: “Bu alan adına bundan sonra HTTP ile değil, sadece HTTPS ile bağlan.” Tarayıcı bu bilgiyi önbelleğe alır ve tanımlanan süre boyunca HTTP isteği yapmaz.
Bu yapı güvenlik açısından değerlidir çünkü kullanıcı yanlışlıkla http:// ile girse bile tarayıcı bağlantıyı HTTPS’e taşır. Fakat HTTPS tarafında sertifika hatası, yanlış yönlendirme veya eksik sanal sunucu tanımı varsa kullanıcı HTTP’ye geri dönemez. HSTS devredeyken tarayıcı güvenli olmayan bağlantıya izin vermediği için sorun daha görünür ve daha kritik hale gelir.
HSTS hataları genellikle tek bir ayardan değil, SSL, DNS, sunucu ve uygulama katmanının uyumsuz çalışmasından kaynaklanır. En sık karşılaşılan etkiler şunlardır:
HSTS başlığında includeSubDomains parametresi kullanıldığında ana alan adının tüm alt alan adları da aynı güvenlik politikasına dahil edilir. Bu seçenek kurumsal yapılarda faydalı olabilir; ancak tüm subdomain’lerde geçerli SSL sertifikası ve doğru HTTPS yapılandırması yoksa ciddi erişim sorunları doğurur.
preload ise daha hassas bir adımdır. Bir alan adı preload listesine alındığında bazı tarayıcılar siteye ilk ziyarette bile HTTP bağlantısını denemez. Bu nedenle test ortamı, geçici subdomain’ler, eski servisler ve üçüncü taraf entegrasyonlar kontrol edilmeden preload kullanılmamalıdır.
Kullanıcı tarafında genellikle “NET::ERR_CERT_COMMON_NAME_INVALID”, “NET::ERR_CERT_AUTHORITY_INVALID”, “too many redirects” veya “Your connection is not private” gibi uyarılar görülür. Ancak hata her zaman doğrudan HSTS olarak yazmayabilir. Bu nedenle kontrole sertifika, yönlendirme zinciri ve yanıt başlıklarından başlamak gerekir.
Teknik ekipler tarayıcı geliştirici araçlarından response headers bölümünü inceleyerek Strict-Transport-Security başlığını görebilir. Ayrıca farklı tarayıcı, gizli sekme ve mobil ağ üzerinden test yapmak sorunun kullanıcı önbelleğinden mi yoksa sunucu yapılandırmasından mı kaynaklandığını ayırt etmeye yardımcı olur.
HSTS’i doğrudan uzun süreli ve tüm alan adlarını kapsayacak şekilde etkinleştirmek yerine kademeli ilerlemek daha güvenlidir. İlk aşamada kısa bir max-age değeriyle test yapılabilir. Örneğin birkaç dakika veya birkaç saatlik süre, hatalı kurgunun etkisini sınırlı tutar.
Kontrol edilmesi gereken temel noktalar şunlardır:
Öncelikle sunucu tarafındaki HSTS başlığı kaldırılmalı veya max-age=0 olarak güncellenmelidir. Bu, tarayıcıya politikanın sona erdiğini bildirir; ancak kullanıcıların bu bilgiyi alabilmesi için siteye geçerli HTTPS üzerinden ulaşabilmesi gerekir. Sertifika hatası devam ediyorsa tarayıcı yeni başlığı okuyamayacağı için sorun sürebilir.
Bu nedenle önce SSL sertifikası düzeltilmeli, ardından HSTS başlığı güncellenmelidir. Eğer sorun preload listesinden kaynaklanıyorsa ilgili kaldırma süreci başlatılmalı, fakat bunun tarayıcılara yansımasının zaman alabileceği bilinmelidir. Kurumsal projelerde bu aşamada hosting sağlayıcısı, sistem yöneticisi ve yazılım ekibinin aynı kontrol listesi üzerinden ilerlemesi zaman kaybını azaltır.
WordPress tarafında “Site Adresi” ve “WordPress Adresi” alanlarının HTTPS olarak tanımlanması gerekir. Buna ek olarak eklenti tabanlı SSL yönlendirmeleri ile sunucu seviyesindeki yönlendirme kuralları aynı anda kullanıldığında döngü oluşabilir. Güvenlik eklentileri HSTS başlığı ekliyorsa, aynı başlığın CDN veya web sunucusu üzerinden tekrar gönderilip gönderilmediği de kontrol edilmelidir.
Canlı sitede değişiklik yapmadan önce staging ortamında test yapmak, özellikle e-ticaret, üyelik ve panel erişimi bulunan projelerde önemlidir. HSTS, doğru uygulandığında güvenliği artıran güçlü bir standarttır; fakat kalıcı etkisi nedeniyle küçük bir yapılandırma hatası bile kullanıcıların siteye erişimini, yönetim paneli girişlerini ve arama motoru taramalarını doğrudan etkileyebilir.