- Konu sahibi
- #1
HTTP ile HTTPS arasındaki temel fark
HTTP ile HTTPS arasındaki temel fark, verinin tarayıcı ile sunucu arasında nasıl taşındığıdır. HTTP bağlantısında istek ve yanıtlar şifrelenmeden gönderilir. HTTPS ise HTTP protokolünü TLS adı verilen güvenli bir bağlantı katmanı üzerinden çalıştırır. Bu sayede aktarılan verinin okunması ve değiştirilmesi zorlaşır; ayrıca tarayıcı, bağlandığı sunucunun alan adı için geçerli bir sertifikaya sahip olup olmadığını kontrol eder.
Örneğin bir kullanıcı giriş formuna parolasını yazdığında HTTP kullanılıyorsa parola ağ üzerindeki aracı sistemler tarafından okunabilir veya değiştirilebilir. HTTPS kullanıldığında bağlantı TLS ile şifrelenir. Bu, parolanın, oturum çerezlerinin, ödeme bilgilerinin ve form verilerinin aktarım sırasında korunmasına yardımcı olur. HTTPS tek başına uygulamanın güvenli olduğu anlamına gelmez; sunucudaki açıkları, zayıf parolaları veya hatalı kodu düzeltmez.
HTTP ve HTTPS nasıl çalışır?
Her iki protokol de tarayıcının sunucuya istek göndermesi ve sunucunun yanıt vermesi mantığıyla çalışır. Fark, HTTPS bağlantısında HTTP trafiğinden önce TLS el sıkışmasının yapılmasıdır. Sunucu sertifikasını sunar, tarayıcı sertifikayı ve alan adını doğrular, ardından tarafların kullanacağı şifreleme anahtarları oluşturulur.
URL içindeki şema da farkı gösterir: HTTP için
http://example.com, HTTPS için https://example.com kullanılır. HTTP genellikle 80, HTTPS ise 443 numaralı bağlantı noktasıyla ilişkilidir; ancak sunucu farklı portlar da yapılandırabilir.| Özellik | HTTP | HTTPS |
|---|---|---|
| Şifreleme | Yoktur | TLS ile sağlanır |
| Veri bütünlüğü | Değişiklik tespit edilemeyebilir | Aktarım değişikliklerine karşı koruma sağlar |
| Sunucu doğrulaması | Sertifika doğrulaması yoktur | Sertifika ve alan adı kontrol edilir |
| Kullanım | Güvenilmeyen ağlarda risklidir | Giriş, ödeme ve genel web trafiği için tercih edilir |
Aynı isteğin iki farklı akışı
Kurgusal bir örnekte kullanıcı
/hesabim sayfasına gider. HTTP’de ağdaki bir aracı, şifreleme başka bir katmanda sağlanmıyorsa istek ve yanıtı görebilir veya değiştirebilir. HTTPS’de tarayıcı sertifikayı doğrular ve HTTP verisini TLS koruması altında iletir. Sunucu uygulaması yine oturumu denetler; TLS, başka bir kullanıcının hesabına erişme yetkisi vermez.CDN veya ters proxy kullanılıyorsa iki ayrı bağlantı vardır: tarayıcıdan proxy’ye ve proxy’den kaynak sunucuya. İlk bağlantının HTTPS olması ikinci bağlantıyı otomatik olarak şifrelemez. Kaynak bağlantısında da TLS ve uygun sertifika doğrulaması yapılandırılmalıdır. Güvenilir proxy bilgisini uygulamaya doğru aktarmamak HTTPS yönlendirme döngüsüne yol açabilir.
Site sahibi neyi kontrol etmeli?
- Sertifikanın kullanılan alan adını kapsadığını ve tarayıcıda zincir/süre uyarısı olmadığını doğrulayın.
- HTTP adresini açıp karşılık gelen HTTPS yoluna yönlendiğini kontrol edin. HTTPS uç noktası hazır olmadan kalıcı yönlendirme eklemeyin.
- Geliştirici araçlarında HTTP ile çağrılan kaynakları araştırın; karma içerik engellerini yalnız uyarıyı gizleyerek çözmeye çalışmayın.
- Giriş ve hesap sayfalarını gerçek kullanıcı verisi kullanmadan sınayın; oturum çerezlerinin Secure, HttpOnly ve uygun SameSite özelliklerini değerlendirin.
- Proxy/CDN varsa kaynak sunucu bağlantısını ve uygulamanın güvenli istek algısını ayrıca kontrol edin.
Sık yapılan hatalar
En yaygın hata, yalnızca ana sayfayı HTTPS yapmak ve diğer kaynakları HTTP bırakmaktır. Bu durum karma içeriğe neden olur. Bir diğer hata, proxy veya CDN arkasında HTTPS sonlandırıldığı halde uygulamanın isteği hâlâ HTTP sanmasıdır; bu, yanlış yönlendirme döngüleri oluşturabilir. Ayrıca sertifika süresini ve yenileme işlemini takip etmemek erişim sorunlarına yol açar.
HTTPS'e geçtikten sonra HTTP'yi tamamen görmezden gelmek de doğru değildir. Kullanıcılar eski bağlantılardan gelebileceği için HTTP tarafı doğru HTTPS adresine yönlendirilmelidir. HSTS etkinleştirilmeden önce etkilenecek adreslerin HTTPS üzerinden çalıştığı doğrulanmalıdır. Özellikle
includeSubDomains seçeneği tüm alt alan adlarına yayılır; ana alan adının çalışması bunun için yeterli değildir.Sık sorulan sorular
HTTPS alan adını ve IP adresimi ağdan tamamen gizler mi?
Hayır. Bağlanılan IP adresi ve trafik zamanlaması gibi bilgiler görülebilir; DNS ve TLS yapılandırmasına bağlı olarak alan adı da açığa çıkabilir. HTTPS, tam anonimlik veya VPN hizmeti değildir.
HTTP ve HTTPS aynı origin sayılır mı?
Hayır. Origin; şema, host ve port birleşimidir. Aynı alan adında HTTP’den HTTPS’e geçiş bu kimliği değiştirir; CORS ve depolama davranışlarında buna dikkat edilir.
Sertifika uyarısını geçmek güvenli midir?
Normal bir ziyaret sırasında uyarıyı geçmek, sunucu kimliğinin doğrulanamadığı bir bağlantıya devam etmek demektir. Özellikle giriş ve ödeme yapmadan önce alan adını kontrol edin ve site sahibinin sertifika sorununu gidermesini bekleyin.