HTTPS/SSL ve Site Güvenliği
HTTPS/SSL nedir?
HTTPS (HTTP Secure), bir web sitesi ile ziyaretçinin tarayıcısı arasındaki veri alışverişini şifreleyen protokoldür. Bu şifreleme, sitenin sahip olduğu bir SSL/TLS sertifikası aracılığıyla sağlanır; sertifika, tarayıcıya sitenin kimliğini doğrulayan dijital bir belge gibi çalışır. Tarayıcıda adres çubuğundaki kilit simgesi, bağlantının şifreli ve sertifikanın geçerli olduğunu gösterir.
HTTP üzerinden gönderilen veriler açık metin (plaintext) olarak iletilir; bu, aynı ağdaki (ör. halka açık Wi-Fi) üçüncü bir kişinin veriyi okuyabilmesi anlamına gelir. HTTPS bu veriyi şifreleyerek yalnızca gönderen ve alan taraf arasında okunabilir hale getirir.
SSL sertifikaları genellikle belirli bir süre için (ör. bir yıl) geçerlidir ve süresi dolduğunda yenilenmesi gerekir; günümüzde birçok hosting sağlayıcı bu süreci otomatikleştirerek sertifikanın kendiliğinden yenilenmesini sağlar, bu da manuel takip ihtiyacını azaltır.
Neden önemli?
HTTPS, kullanıcı verilerinin (form girişleri, oturum bilgileri, ödeme bilgileri) araya girme (man-in-the-middle) saldırılarına karşı korunmasını sağlar. Google, HTTPS kullanımını hafif bir sıralama sinyali olarak değerlendirir ve tarayıcılar HTTP siteleri için "Güvenli Değil" uyarısı gösterir; bu da kullanıcı güvenini doğrudan etkiler.
Güvensiz bir site, ziyaretçilerin sitede kalma isteğini azaltır; özellikle form dolduran veya ödeme yapan kullanıcılar "Güvenli Değil" uyarısını gördüğünde işlemi tamamlamadan siteden ayrılabilir. Bu da dönüşüm oranını doğrudan etkileyen bir güven sorunudur.
Ayrıca modern tarayıcı özelliklerinin (ör. konum servisleri, bildirimler, bazı ödeme API'leri) çoğu yalnızca HTTPS üzerinden çalışır; HTTP'de kalan bir site bu özelliklerden hiç faydalanamaz ve teknik açıdan giderek daha kısıtlı hale gelir.
Nasıl düzeltilir?
- Sitenize geçerli bir SSL sertifikası kurun ve süresinin dolmasını engelleyecek otomatik yenileme sağlayın.
- Tüm HTTP isteklerini 301 yönlendirme ile HTTPS sürümüne yönlendirin.
- Karışık içerik (mixed content) uyarılarını giderin: sayfadaki tüm görsel, script ve CSS dosyalarının HTTPS üzerinden yüklendiğinden emin olun; aksi halde tarayıcı sayfayı "kısmen güvenli" olarak işaretleyebilir.
- Mümkünse HSTS (HTTP Strict Transport Security) başlığı ekleyerek tarayıcının siteye her zaman HTTPS üzerinden bağlanmasını zorunlu kılın.
- Yönlendirme zincirlerini (HTTP → HTTPS → www → non-www gibi art arda birden çok yönlendirme) tek adıma indirin; her ek yönlendirme sayfa yüklenme süresine küçük bir gecikme ekler.
- Üçüncü taraf servislerin (görsel CDN'i, form sağlayıcı, chat widget'ı gibi) verdiği kaynakların da HTTPS üzerinden sunulduğunu kontrol edin; bunlar genellikle karışık içerik sorununun gözden kaçan kaynağıdır.
Örnek
\# .htaccess örneği
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Kötü örnek: HTTPS'e geçtikten sonra sayfa içindeki eski <img src="http://ornek.com/logo.png"> gibi mutlak HTTP bağlantılarını güncellemeyi unutmak; bu, sayfanın genel olarak güvenli görünse bile tarayıcıda karışık içerik uyarısına yol açar.
Sık yapılan hatalar
- HTTP sürümünü kapatmadan açık bırakmak; böylece site hem HTTP hem HTTPS üzerinden erişilebilir kalır ve içerik iki farklı adreste yinelenmiş olur.
- Sayfada HTTPS altında hâlâ HTTP üzerinden yüklenen görsel/script bırakmak (karışık içerik).
- SSL sertifikasının süresinin dolmasına izin vermek; bu durumda tarayıcı siteyi tamamen erişilemez gösterebilir.
- Birden fazla adımdan oluşan gereksiz yönlendirme zincirleri oluşturmak.
- Sertifikayı yalnızca ana alan adı için alıp alt alan adlarını (ör. blog.ornek.com) kapsam dışında bırakmak.
- İç bağlantılarda (menü, footer, dahili linkler) hâlâ eski HTTP adreslerini kullanmak; bu, her tıklamada gereksiz bir 301 yönlendirmesi tetikler ve sayfa yüklenmesini hafifçe yavaşlatır.
- Sitemap ve kanonik etiketlerde hâlâ eski HTTP adreslerini referans göstermek; bu, arama motoruna karışık sinyaller gönderir.
- Yerel geliştirme (localhost) ortamında kullanılan kendinden imzalı (self-signed) sertifikayı yanlışlıkla canlı ortam yapılandırmasına taşımak; tarayıcılar bu tür sertifikaları güvenilir kabul etmez.
- Seoraporu.co raporu HTTPS eksikliğini veya karışık içerik uyarılarını teknik bulgular bölümünde öncelikli olarak işaretler, çünkü güven ve performansı aynı anda etkiler.