Hsts nedir? HTTPS den farkı nedir? (HTTP Scrict Transport Securit)

Ekim 19, 2021
Hsts nedir?
655
Views

SSL sertifikaları websitelerinizin güvenliği için en önemli etkenlerden birisidir. SSL sertifikasına sahip websiteleri şifrelenmiş oturumları HTTPS protokolü üzerinden yayınlamaktadır. Google Chorme, Microsoft Edge, Mozilla ve Opera gibi en çok kullanılan ve güncel tarayıcılar HTTP protokolü üzerinden yayın yapan websitelerini ” Güvenli Değil ” olarak url kısmında son kullanıcıya göstermektedir.

Sitelerin ” Güvenli Değil ” ibaresinden kurtulması bir SSL sertifikasına sahip olmak gereklidir. SSL sertifikasına sahip olmanın bir kaç türlü yolu bulunmaktadır fakat şu anki konumuz SSL sertifikasından farklı olarak HSTS protokolüdür açılımı HTTP Scrict Transport Securit olan protokolü Türkçeye http katı taşıma güvenliği olarak çevirebiliriz.

HSTS protokolünün ana amacı sitenize herhangi bir şekilde HTTP üzerinden bağlantı yapılmasını engellemektir. HSTS protokolü aktif olan web sitelerinde yapacağınız bütün gezintiler HTTPS üzerinden olmaktadır. Aslında HSTS’nin HTTPS den herhangi bir farkı yoktur ve tam olarak kıyaslanacak bir yapıda değillerdir. HTTPS websitelerinin SSL sertifikası ile yayın yapmasını sağlayan protokoldür HSTS ise sitelerin SSL ile yayın yapmasını sağlayan yani her türlü site içi bağlantılara HTTPS ile erişilmesini zorlayan bir servistir diyebiliriz.

HSTS Nasıl Çalışır?

HSTS protoklünün çalışma mantığı basitçe tüm site linklerinizi HTTPS üzerine yönlendirmektir. Bir ssl sertifikasına sahip olmadan HSTS etkinleştiremezsiniz, etkinleştirdiğiniz takdirde muhtemelen sitenize erişim konusunda sorun yaşayacaksınız. HSTS aktif olan bir websitesinde HTTP protokolü ile erişim yapmaya çalıştığınız her link kendiliğinden HTTPS protokölüne yönlenecektir. Bu sebeple eğer subdomainleriniz için ssl sertifikasına sahip değilseniz subdomainlerinize erişimde sorun yaşayacaksınız. Bu sorunun çözümü için subdomain adresiniz için ayrıca bir ssl sertifikasına sahip olmanız ya da bir wildcard ssl’e sahip olmanız gerekmektedir.

HSTS Şart mıdır?

HSTS protoklü için şart bir durum bulunmamaktadır fakat websitelerinizde güvenliğe önem veriyorsanız ve http ile erişim sağlanabilecek alanlarda açıklar oluşabileceğini düşünüyorsanız hsts protoklünüo aktif etmeniz güvenliğiniz için önem arz etmektedir. Sitenizde ssl sertifikası bulunsa da .htaccess ya da web.config dosyası ile yapmış olduğunuz https yönlendirmeleri bazen yeterli olamayabilir.

Site yapınıza göre sonradan eklediğiniz kodlar, eklentiler ve tema dosyaları gibi içeriksel değişikliklerde gözden kaçırabileceğiniz HTTP protokolü ile dışarıdan erişim sağlanabilen linkler oluşabilir. Böyle durumlarda HSTS protokolünü aktif etmediğiniz için sonradan pişman olabilirsiniz.

Hsts SEO için önemli mi?

Seo kavramı zamana ve gündeme göre değişiklik gösterebilmektedir. Google mobil sitelere son yıllarda daha fazla ağırlık verdiği için içerik kadar site hızları da SEO puanınızı etkilemektedir. Hsts protokolü ise tam bu noktada devreye girmektedir. HSTS ile Websitelerinizin header bilgisine zaman belirtilmiş önyükleme (preload) olarak https yönlendirmesi eklenmektedir, bu sayede sitenize bir kere uğramış ziyaretçiler uzun bir süre sitenizde herhangi bir linke http üzerinden bağlanamayacaktır.

Kod üzerinde belirtmiş olacağınız Strict-Transport-Security: max-age=31536000 değeri boyunca sitenizde yapılan tüm istekler https protokolü üzerinden tarayıcılarda değerlendirilecektir. Bu durumda da sitenize ekstra bir istek bekletmediği için hem hız kazandıracak hem de güvenlik zafiyeti vermemenize olanak sağlayacaktır. Hsts kullanmadığınız döneme göre hızlanmış ve http üzerinden bağlantı kurulamayan websiteleriniz SEO taraflı olumlu sonuçlar alacaktır.

HSTS Gereksinimleri Nelerdir?

  1. Siteniz SSL sertifikasına sahip olmalıdır.
  2. Subdomain kullanmaktaysanız subdomaininiz için ssl sertifikası bulunmaktadır ya da wildcard bir ssl sertifikasına sahip olmanız gerekmektedir.
  3. MAX AGE (HTTP üzerindeki cache süresi diyebiliriz.) en az 31536000 saniye ya da 18 Hafta olmalıdır.
  4. includeSubDomains yönergesi belirtilmelidir. includeSubDomains isteğe bağlı bir parametredir, bu kural sitenin tüm alt alanları için de geçerlidir.

HSTS Nasıl Aktif Edilir?

Hsts protokolünü sitenizin header bilgisine aşağıdaki kodu ekleyerek aktif edebilirsiniz.

“Strict-Transport-Security: max-age=31536000; includeSubDomains”

Bu işlemi yapmanın en basit ve en sık kullanılan yolu .htaccess dosyanızı aşağıdaki gibi düzenlemektir.

htaccess hsts

Farklı yapıdaki sunucular üzerinde Hsts kullanımı.

Apache Web Sunucusu İçin HSTS Kurulumu

Apache web sunucusunda bir önceki başlıkta belirttiğimiz .htaccess  dosyasına aşağıdaki kodları ekleyerek kullanabilirsiniz.

# Use HTTP Strict Transport Security to force client to use secure connections only Header always set Strict-Transport-Security "max-age=300; includeSubDomains; preload"

Lighttpd için HSTS aktifleştirme

Aşağıdaki kodu Lighttpd yapılandırma dosyasına yani/etc/lighttpd/  dizini altında bulunan lighttpd.conf dosyasına ekleyin

server.modules += ( "mod_setenv" ) $HTTP["scheme"] == "https" { setenv.add-response-header = ("Strict-Transport-Security" => "max-age=300; includeSubDomains; preload") }

NGINX için HSTS aktifleştirme

NGINX için HSTS kurulumu kodlarını site.conf dosyanıza yazmalısınız.

add_header Strict-Transport-Security 'max-age=300; includeSubDomains; preload; always;'

IIS Sunucuları için HSTS aktifleştirme

IISAdministration PowerShell cmdlet’lerini kullanarak websitelerinde hsts yönlendirmesi yapılabilir.

Import-Module IISAdministration
Reset-IISServerManager -Confirm:$false
Start-IISCommitDelay $sitesCollection = Get-IISConfigSection -SectionPath "system.applicationHost/sites" | Get-IISConfigCollection $siteElement = Get-IISConfigCollectionElement -ConfigCollection $sitesCollection -ConfigAttribute @{"name"="Contoso"} $hstsElement = Get-IISConfigElement -ConfigElement $siteElement -ChildElementName "hsts" Set-IISConfigAttributeValue -ConfigElement $hstsElement -AttributeName "enabled" -AttributeValue $true Set-IISConfigAttributeValue -ConfigElement $hstsElement -AttributeName "max-age" -AttributeValue 31536000 Set-IISConfigAttributeValue -ConfigElement $hstsElement -AttributeName "redirectHttpToHttps" -AttributeValue $true Stop-IISCommitDelay Remove-Module IISAdministration

IIS 10 ve üzeri windows serverlarda hsts kullanımı ile iligli bilgiye IIS Sunucularda HSTS Uygulaması linkinden erişebilirsiniz.

 

Sitem üzerinde HSTS yönlendirmesi Aktif mi?

Yapmış olduğunuz HSTS yönlendirmelerinin aktif olup olmadığını ya da önceden sitemde böyle bir düzenleme var mıdır gibi konuları merak ediyorsanız bunun için kodlarınızı ya da sunucu yapılandırmanızı incelemenize gerek yok.

domain hsts control

HSTS yönlendirmesinin aktif olup olmadığını hstspreload.org sitesi üzerinden kontrol edebilirsiniz. Örnek olarak facebook sitesinin hsts yönlendirmesinin aktif oluğ olmadığını kontrol ettik ve sonuç aktif olarak karşımıza çıktı

google hsts

HSTS protokolünün aktif olmadığını test ettik. Sizler de bu site üzerinden testlerinizi gerçekleştirebilirsiniz ayrıca aynı site üzerinde  HSTS hakkında bazı önemli bilgiler ve işlemlerin nasıl yapılabileceği hakkında bazı bilgiler bulunmakta.

HSTS Nasıl Kaldırılır? (Chrome, Safari, Mozilla, Opera)

Hsts her ne kadar sitenizin güvenliği konusunda çok önemli olsa da bazı zamanlarda sitenize erişim konusunda ya da ssl sertifikasının bitmesi gibi durumlarda sorun yaşayabilirsiniz. Hsts düzenlemesi sitenizin header bilgisine yazılmaktadır ama sadece yazılımınızdaki kodu silmeniz hsts yönlendirmesinin devre dışı kalmasına yeterli olmamaktadır çünkü; hsts kodu ile siteye giriş yapmış olduğunuz web tarayıcısına ilgili domain için uzun süreli istek iletilmektedir. Bu da çok uzun süreli olduğu için (1-2 sene eklenebilmektedir) sitenize https kullanmadan erişmek konusunda sorun yaşayacağınız anlamına gelmektedir.

Böyle bir durum ile karşılaştığınızda tarayıcınız üzerinde önbellekte tutulan sorunlu https yönlendirmesini kaldırabalirsiniz. Farklı tarayıcılara göre bu işlem farklı şekilde yapılabilmektedir.

Google Chrome HSTS Kaldırma

Google Chrome tarayıcınız üzerinden hsts kaldırmak için aşağıdaki kodu tarayıcınızın url kısmına yazmanız gerekmektedir.

chrome://net-internals/#hsts 

Ardından açılan sayfanın en alt kısmından domain adresini girerek istediğiniz sitenin hsts zorunluluğunu kaldırabilirsiniz.

chrome hsts deactive

Opera Tarayıcı HSTS Kaldırma

Opera tarayıcılar chromium altyapısı üzerinde çalıştığı için Chrome tarayıcılar için yapılabilecek üstteki işlemlerin aynısını takip ederek hsts protokolünüzü devre dışı bırakabilirsiniz.

Safari Tarayıcı HSTS kaldırma

  1. Safari tarayıcısı üzerinde HSTS yönlendirmesini kaldırmanız için öncelikle Safari tarayıcısını kapatın.
  2. Ardından “~/Library/Cookies/HSTS.plist” dosyasını silin.
  3. Tekrardan Safari tarayıcınızı açtığınızda tüm domainlerdeki hsts zorunluluğu kaldırılacaktır.

Mozilla Firefox Tarayıcı HSTS kaldırma

  1. Firefox tarayıcıda hsts kaldırmak için Ctrl + Shift + H (Mac’te Cmd + Shift + H) tuşlarına basarak tarama geçmişini açın (Tarayıcı geçmişinize doğrudan tıklayarak erişebilirsiniz).
  2. HSTS ayarlarını silmek istediğiniz siteye gidin
  3. Ardından ilgili siteye sağ tıklayın ve “Bu Siteyi Unut’u tıklayın.” Bunun Firefox’ta sitenin tüm verilerini temizleyeceğini unutmayın.

HSTS kaldırdığım halde site https üzerinden yayın yapıyor.

Hsts kaldırdığınız halde siteniz hala https protokolü üzerinden yayın yapıyor ise bunun bir kaç sebebi olabilir. Bu sebepler aşağıdakilerden herhangi biri ya da birden fazlası olabilir

  • Siteniz önbellek üzerinden çalışıyor olabilir belli bir süre beklemelisiniz. Tarayıcı önbelleğinizi ya da sitenizde bir cache dosyası bulunuyor ise temizlemelisiniz.
  • Yazılımızda zorunlu bir https yönlendirmesi bulunuyor olabilir. Configration, .htaccess, XML dosyalarınızı incelemenizi öneririz.
  • Veritabanınızda bir url düzenlemesi olabilir bu kısımları incelemelisiniz.
  • WordPress kullanıyor iseniz bir eklenti veya tema sebepli https yönlendirmesi bulunuyor olabilir. Bu konuda wordpress üzerinde en çok kullanılan really simple ssl eklentisinin etkinliğini kaldırmanızı öneririz. İlgili yazıya Really Simple SSL Yönlendirmelerini Kaldırmak linkinden erişebilirsiniz.
  • Kullandığınız bir hazır yazılım paketi ya da scriptin kendi ssl ve https yapılandırması bulunuyor olabilir bu konuda inceleme yapmalısınız.
  • Eğer üstteki hiçbir düzenleme işe yaramdıysa Hosting firmanızın zorunlu ssl yönlendirmesi bulunuyor olabilir, bir statik IP adresi kullanıyor iseniz bunu kaldırmalı ya da hosting firmanızdan bu konuda bilgi istemelisiniz.

 

Kaynak: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security#syntax

Kaynak:https://wolkanca.com.tr/ssl-siteler-icin-hsts/

Kaynak:https://www.ihs.com.tr/blog/hsts-nedir-ve-nasil-kurulur/

Kaynak:https://docs.microsoft.com/en-us/iis/get-started/whats-new-in-iis-10-version-1709/iis-10-version-1709-hsts

Makale Kategorileri:
Extra

Merhaba dostlarım ben Baki Yıldız. https://www.linkedin.com/in/bakiyildizz/

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir