SSL/TLS nedir?
SSL (Secure Sockets Layer) ve TLS (Transport Layer Security), ağlar üzerinden iletişimi güvenceye alan kriptografik protokollerdir. TLS, SSL'nin modern halefidir, ancak "SSL" her ikisini ifade etmek için yaygın olarak kullanılmaya devam eder. Bu protokoller HTTPS'yi etkinleştirerek tarayıcılar ile sunucular arasındaki verileri şifreler.
SSL ve TLS: kısa tarihçe
| Sürüm | Yıl | Durum |
|---|---|---|
| SSL 1.0 | 1994 | Hiç yayımlanmadı (kusurlu) |
| SSL 2.0 | 1995 | Kullanımdan kaldırıldı (güvenli değil) |
| SSL 3.0 | 1996 | Kullanımdan kaldırıldı (POODLE güvenlik açığı) |
| TLS 1.0 | 1999 | Kullanımdan kaldırıldı |
| TLS 1.1 | 2006 | Kullanımdan kaldırıldı |
| TLS 1.2 | 2008 | Güncel standart |
| TLS 1.3 | 2018 | En yeni ve önerilen |
Modern sistemler yalnızca TLS 1.2 veya TLS 1.3 kullanmalıdır.
TLS nasıl çalışır?
TLS el sıkışması
1. İstemci Hello: Tarayıcı desteklenen TLS sürümlerini ve şifre paketlerini gönderir
2. Sunucu Hello: Sunucu TLS sürümünü ve şifre paketini seçer
3. Sertifika: Sunucu SSL sertifikasını gönderir
4. Anahtar değişimi: Güvenli anahtar değişimi gerçekleştirilir (şifre paketine göre değişir)
5. Tamamlandı: Şifreli oturum oluşturulur
Client Server
|-- Client Hello -------------->|
|<-- Server Hello --------------|
|<-- Certificate ---------------|
|<-- Key Exchange --------------|
|-- Key Exchange -------------->|
|-- Finished ------------------>|
|<-- Finished ------------------|
|<======= Encrypted Session ===>|
TLS 1.3 bunu tek gidiş-dönüşe indirerek performansı artırır.
SSL/TLS sertifikaları
Sertifikada neler bulunur?
- Subject: Sertifikanın kapsadığı alan adı veya adları
- Issuer: Sertifikayı veren Sertifika Otoritesi (CA)
- Validity Period: Başlangıç ve sona erme tarihleri
- Public Key: Şifreli bağlantılar kurmak için kullanılan açık anahtar
- Signature: CA'nın kriptografik imzası
Sertifika türleri
Domain Validated (DV): Yalnızca alan adı sahipliğini kanıtlar- Dakikalar içinde verilir
- Ücretsiz (Let's Encrypt) veya düşük maliyetlidir
- Kilit simgesini gösterir, kuruluş bilgisi göstermez
- İşletme doğrulaması gerektirir
- Sertifika ayrıntılarında kuruluş adını gösterir
- Daha yüksek güven, orta düzey maliyet sunar
- Titiz kimlik doğrulaması gerektirir
- Önceden yeşil çubuk gösterirdi (tarayıcılar bunu kaldırdı)
- En yüksek maliyet ve güven düzeyine sahiptir
Sertifika kapsamı
Single Domain: Tek bir alan adını kapsar (example.com) Wildcard: Tüm alt alan adlarını kapsar (*.example.com) Multi-Domain (SAN): Birden çok belirli alan adını kapsarSSL/TLS uygulaması
Let's Encrypt ile ücretsiz sertifikalar
# Using Certbot
sudo certbot --nginx -d example.com -d www.example.com
# Auto-renewal
sudo certbot renew --dry-run
Bulut sağlayıcı sertifikaları
Çoğu bulut platformu ücretsiz ve otomatik yenilenen sertifikalar sunar:
- Cloudflare: Proxy arkasındaki alan adları için otomatik
- AWS: Certificate Manager (ACM)
- Google Cloud: Yönetilen SSL sertifikaları
Sertifika doğrulaması
Tarayıcılar sertifikaları şu şekilde doğrular:
1. Sertifika zincirini güvenilir bir kök CA'ya kadar kontrol eder
2. Sertifikanın süresinin dolmadığını doğrular
3. Alan adıyla eşleştiğini teyit eder
4. İptal durumunu kontrol eder (CRL/OCSP)
SSL/TLS için en iyi uygulamalar
Sunucu yapılandırması
TLS 1.2+ kullanın: SSL 3.0, TLS 1.0 ve TLS 1.1'i devre dışı bırakınssl_protocols TLSv1.2 TLSv1.3;
Güçlü şifre paketleri: Modern ve güvenli şifreleri tercih edin
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
HSTS: HTTPS'yi zorunlu kılın (HSTS sözlük maddesine bakın)
Sertifika yönetimi
- Yenilemeyi otomatikleştirin: Sertifikaların süresi dolar (Let's Encrypt için 90 gün)
- Süre sonunu izleyin: Sertifikalar sona ermeden önce uyarılar ayarlayın
- CAA kayıtlarını kullanın: Hangi CA'ların sertifika verebileceğini kısıtlayın
SSL/TLS kontrolü
DomScan kullanarak:curl "https://domscan.net/v1/health?domain=example.com"
# Returns SSL validity, issuer, expiration
OpenSSL kullanarak:
openssl s_client -connect example.com:443 -servername example.com
Çevrim içi araçlar: SSL Labs (ssllabs.com/ssltest) kapsamlı analiz sunar.
Yaygın SSL sorunları
Karma içerik: HTTPS sayfası HTTP kaynakları yüklüyor (tarayıcılar tarafından engellenir) Sertifika uyuşmazlığı: Sertifika alan adıyla eşleşmiyor Süresi dolmuş sertifika: Sertifikanın geçerlilik süresi sona erdi Eksik zincir: Ara sertifikalar eksikSSL/TLS artık isteğe bağlı değildir. Güvenlik ve SEO yararları için tüm web siteleri HTTPS kullanmalıdır.