HTTPS ve TLS nasıl çalışır? Kilit simgesinin arkasında ne var?

Adres çubuğundaki kilit, trafiğinin şifreli olduğunu söyler. Peki nasıl?

İki sorunu birden çözer

  1. Şifreleme: Araya giren biri (açık Wi-Fi’de, ISP’de) trafiği okuyamaz.
  2. Kimlik doğrulama: Bağlandığın sitenin gerçekten o site olduğunu kanıtlar (sahte banka sitesine değil).

El sıkışma (TLS handshake), basitçe

  1. Tarayıcı siteye bağlanır, “hangi şifreleme yöntemlerini destekliyorsun?” diye sorar.
  2. Site sertifikasını gönderir. Sertifika, güvenilir bir makam (CA) tarafından imzalanmıştır.
  3. Tarayıcı sertifikayı doğrular: imza geçerli mi, süresi dolmuş mu, adres uyuyor mu?
  4. İki taraf, sadece bu oturuma özel bir gizli anahtar üzerinde anlaşır (asimetrik şifreleme ile güvenli şekilde).
  5. Bundan sonra tüm trafik bu anahtarla (hızlı, simetrik şifreleme) şifrelenir.

Sertifikayı kim veriyor?

  • Let’s Encrypt: ücretsiz, otomatik, 90 gün geçerli, kendiliğinden yenilenir. Bugün web’in büyük kısmı bunu kullanıyor.
  • Sunucu yazılımları (Caddy, Nginx + certbot) bu sertifikayı alıp yenilemeyi otomatik yapar.

Sık karşılaşılan hatalar

  • “Sertifika güvenilir değil”: Sertifika tanınan bir CA tarafından imzalanmamış (kendi imzalı) ya da süresi dolmuş.
  • “Ad uyuşmuyor”: Sertifika site.com için ama sen www.site.com’a girdin ve o ada sertifika yok.
  • Karışık içerik (mixed content): Sayfa HTTPS ama içindeki bir resim/script HTTP; tarayıcı uyarır. Tüm bağlantıları https:// yap.

Pratik güvenlik

  • HSTS başlığı ekle: tarayıcı siteye hep HTTPS ile bağlanır, araya girme (downgrade) saldırısını zorlaştırır.
  • TLS 1.2 ve 1.3 kullan; eski SSL/TLS 1.0-1.1’i kapat.
  • Sertifika sürelerini takip et; yenilenmezse site erişilemez olur.

Sorularınızı Soru-Cevap’a bekliyoruz.