WordPress, yazılım ve IT üzerine notlar
Anasayfa » Ağ & DNS » HTTPS'in arkasında ne var? TLS el sıkışması ve sertifikaların sade anlatımı

HTTPS'in arkasında ne var? TLS el sıkışması ve sertifikaların sade anlatımı

İçindekiler
  1. İki tür şifreleme
  2. El sıkışması adım adım (TLS 1.3)
  3. Sertifika neyi kanıtlar?
  4. Sık görülen sertifika hataları
  5. Kontrol etmek
  6. Sunucu tarafında öneriler

Bir siteye HTTPS ile bağlandığınızda, sayfanın ilk baytı gelmeden önce tarayıcınız ile sunucu arasında bir anlaşma yapılır. Bu anlaşmaya TLS el sıkışması (TLS handshake) denir. Birkaç milisaniye sürer ve üç şeyi sağlar:

  1. Gizlilik: Aradaki trafiği kimse okuyamaz.
  2. Bütünlük: Trafik yolda değiştirilemez; değiştirilirse fark edilir.
  3. Kimlik doğrulama: Konuştuğunuz sunucunun gerçekten banka.com.tr olduğundan emin olursunuz.

Eskiden bu protokolün adı SSL'di. Bugün kullanılan protokol TLS'tir (güncel sürümleri TLS 1.2 ve TLS 1.3), ama "SSL sertifikası" ifadesi alışkanlıkla kullanılmaya devam ediyor.

İki tür şifreleme

TLS, iki farklı şifreleme türünü birlikte kullanır.

Asimetrik şifreleme (açık anahtarlı): Bir anahtar çifti vardır: biri herkese açık (public key), diğeri gizli (private key). Açık anahtarla şifrelenen veriyi yalnızca gizli anahtar açabilir. Gizli anahtarla yapılan bir imzayı ise herkes açık anahtarla doğrulayabilir. Bu yöntem güçlüdür ama yavaştır.

Simetrik şifreleme: İki taraf da aynı anahtarı kullanır. Çok hızlıdır, ama o ortak anahtarın güvenli bir şekilde paylaşılması gerekir.

TLS'in çözümü şudur: El sıkışması sırasında asimetrik yöntemlerle güvenli bir şekilde ortak bir anahtar üzerinde anlaşılır. Ardından bütün veri trafiği bu ortak anahtarla, hızlı simetrik şifrelemeyle taşınır.

El sıkışması adım adım (TLS 1.3)

  1. İstemci merhaba (ClientHello): Tarayıcı, desteklediği TLS sürümlerini ve şifreleme yöntemlerini, bağlanmak istediği alan adını (SNI) ve bir anahtar değişimi için gerekli verileri gönderir.
  1. Sunucu merhaba (ServerHello): Sunucu, ortak desteklenen yöntemlerden birini seçer ve anahtar değişiminin kendi payını gönderir. Bu noktada iki taraf, aralarında hiçbir zaman açıkça gönderilmeyen ortak bir gizli anahtarı hesaplayabilir. Bunu sağlayan matematik, Diffie-Hellman anahtar değişimidir.
  1. Sertifika ve doğrulama: Sunucu, sertifikasını gönderir ve gizli anahtarıyla bir imza atarak bu sertifikanın gerçek sahibi olduğunu kanıtlar.
  1. Tarayıcı sertifikayı kontrol eder (aşağıda anlatıyorum). Her şey yolundaysa el sıkışması tamamlanır ve şifreli veri akmaya başlar.

TLS 1.3'te bütün bu süreç tek bir gidiş-dönüşte tamamlanır. TLS 1.2'de iki gidiş-dönüş gerekiyordu. Bu fark, özellikle yüksek gecikmeli mobil bağlantılarda sayfanın daha hızlı açılması demektir.

TLS 1.3'teki bir başka önemli özellik de ileriye dönük gizliliktir (forward secrecy). Her bağlantı için geçici anahtarlar kullanılır. Bu sayede sunucunun gizli anahtarı yıllar sonra çalınsa bile, geçmişte kaydedilmiş şifreli trafik çözülemez.

Sertifika neyi kanıtlar?

Sertifika, bir sertifika otoritesinin (CA) dijital olarak imzaladığı bir belgedir ve kabaca şunu söyler: "Bu açık anahtar, ornek.com alan adının sahibine aittir."

Tarayıcı sertifikayı kontrol ederken şunlara bakar:

  • Zincir: Sertifika, tarayıcının ya da işletim sisteminin güvendiği kök sertifika otoritelerinden birine kadar geçerli bir imza zinciriyle bağlanıyor mu? Sunucu genellikle kendi sertifikasıyla birlikte bir ya da daha fazla ara sertifika da gönderir.
  • Alan adı: Sertifikadaki adlar, bağlanılan alan adını kapsıyor mu?
  • Süre: Sertifika geçerlilik tarihleri arasında mı?
  • İptal: Sertifika iptal edilmiş mi?

Sertifika neyi kanıtlamaz? Sitenin güvenilir ya da dürüst olduğunu. Bir sertifika yalnızca, bağlandığınız sunucunun o alan adını kontrol ettiğini kanıtlar. Oltalama siteleri de ücretsiz ve geçerli sertifikalar alabilir. Asma kilit, "bu bağlantı şifreli ve bu gerçekten giris-dogrulama-banka.xyz" demektir; o alan adının bir bankaya ait olduğunu söylemez.

Sık görülen sertifika hataları

NET::ERR_CERT_DATE_INVALID / Sertifikanın süresi dolmuş
Sertifika yenilenmemiş. Otomatik yenilemenin çalıştığını kontrol edin. Nadiren de olsa, ziyaretçinin bilgisayarının tarihi yanlış olduğunda da bu hata görülür.

NET::ERR_CERT_COMMON_NAME_INVALID / Ad uyuşmazlığı
Sertifika, bağlanılan alan adını kapsamıyor. Örneğin sertifika yalnızca ornek.com için alınmış ama site www.ornek.com üzerinden açılıyor. Ya da sunucuda birden fazla site var ve yanlış sitenin sertifikası sunuluyor.

Zincir eksik (incomplete chain)
Sunucu yalnızca kendi sertifikasını gönderiyor, ara sertifikaları göndermiyor. Masaüstü tarayıcılar eksik ara sertifikayı çoğu zaman kendileri bulup tamamlar, bu yüzden hata yalnızca bazı mobil cihazlarda, komut satırı araçlarında ya da başka sunucuların sizin API'nize bağlanırken görünür. Web sunucusu ayarlarında tam zinciri içeren dosyayı (Let's Encrypt'te fullchain.pem) kullanın.

Kendinden imzalı sertifika (self-signed)
Sertifikayı tanınmış bir otorite değil, sunucunun kendisi imzalamış. İç test ortamları için kullanılabilir, ama herkese açık bir sitede kullanılmamalıdır.

Kontrol etmek

Bir sitenin sunduğu sertifikayı, zinciri ve TLS sürümünü komut satırından görmek için:

openssl s_client -connect ornek.com:443 -servername ornek.com </dev/null 2>/dev/null | openssl x509 -noout -subject -issuer -dates -ext subjectAltName

Daha kapsamlı bir analiz için SSL Labs'ın ücretsiz sunucu testi; desteklenen protokolleri, zincir sorunlarını ve zayıf yapılandırmaları ayrıntılı olarak raporlar.

Sunucu tarafında öneriler

  • TLS 1.2 ve 1.3'ü açık tutun. TLS 1.0 ve 1.1 artık güvenli kabul edilmiyor ve modern tarayıcılar tarafından desteklenmiyor.
  • Sertifikaları otomatik yenileyin ve kalan süreyi dışarıdan izleyin.
  • Bütün sayfaların HTTPS üzerinden açıldığından emin olduktan sonra HSTS başlığını ekleyin.
  • Gizli anahtar dosyasının izinlerini sıkı tutun. Bu dosya ele geçirilirse, saldırgan sizin sitenizi taklit edebilir.

TLS, internetin en başarılı güvenlik teknolojilerinden biri. Ücretsiz sertifikalar sayesinde bugün web trafiğinin büyük çoğunluğu şifreli akıyor. Asma kilidin ne anlama geldiğini ve ne anlama gelmediğini bilmek de hem site sahipleri hem de kullanıcılar için en az o kadar önemli.

Tezcan Kabakçı
Hosting teknik destek uzmanı ve WordPress uzmanı. 2024'ten beri bir hosting şirketinde teknik destek bölümünde çalışıyor; WordPress, DNS ve e-posta sorunlarını her gün yakından görüyor. YouTube kanalı.
Bu yazı 20 Ağustos 2026 tarihinde Ağ & DNS kategorisinde yayınlandı.
Yeni yazılar e-postanıza gelsin

Ayda birkaç e-posta; istediğiniz an tek tıkla ayrılabilirsiniz.

Videolu anlatımlar YouTube'da
Sunucu ve WordPress sorunlarını kısa videolarla anlattığım kanala abone olabilirsiniz. ▶ Kanala abone ol

Yorumlar

Henüz yorum yok. İlk yorumu siz yazın.

Yorum yazın

Yorumlar onaylandıktan sonra yayımlanır. Bağlantı içeren yorumlar spam olarak değerlendirilebilir.