Skip to main content

🔒 SSL/TLS Doğrulaması Nedir ve Nasıl Etkinleştirilir?

Bu rehber, SSL/TLS doğrulamasının nasıl çalıştığını, neden güvenli bağlantılar için hayati olduğunu ve farklı platformlarda nasıl etkinleştirileceğini açıklar.
Ayrıca openssl, curl, Python ve Node.js araçlarıyla SSL doğrulamasını test etmeyi de öğreneceksiniz.


🧠 SSL Doğrulama Nedir?

SSL (Secure Sockets Layer) veya modern haliyle TLS (Transport Layer Security) doğrulaması; istemci ile sunucu arasındaki iletişimin kimliğini, bütünlüğünü ve güvenilirliğini garanti eder.

Bir tarayıcı ya da API istemcisi, HTTPS isteği gönderdiğinde, sunucunun gerçekten iddia ettiği kimlikte olup olmadığını anlamak için çok adımlı bir kontrol süreci başlatır.

🔍 Doğrulama Süreci Adımları

AdımAçıklama
1. Sertifika SunumuSunucu, SSL sertifikasını istemciye gönderir.
2. CA KontrolüSertifikanın tanınmış bir Sertifika Yetkilisi (CA) tarafından imzalandığı doğrulanır.
3. Alan Adı EşleşmesiSertifikadaki CN/SAN alanı, erişilen alan adıyla aynı olmalıdır.
4. Sertifika Zinciri KontrolüLeaf → Intermediate → Root CA zinciri tam olmalıdır.
5. Süre ve İptal KontrolüSertifika süresi dolmamış ve CA tarafından iptal edilmemiş olmalıdır.

🚫 Bu adımlardan biri bile başarısız olursa, TLS handshake kesilir ve tarayıcı ERR_CERT_COMMON_NAME_INVALID veya SSL: CERTIFICATE_VERIFY_FAILED gibi uyarılar verir.


🔐 SSL Doğrulaması vs SSL Şifreleme

ÖzellikSSL DoğrulamasıSSL Şifrelemesi
AmaçSunucunun kimliğini onaylamak ve sahteciliği önlemekVerilerin gizliliğini ve bütünlüğünü korumak
Ne Zaman OlurTLS el sıkışmasının başındaBağlantı doğrulandıktan sonra
Engellediği RiskOrtadaki Adam (MITM) saldırısıVeri hırsızlığı ve dinleme (eavesdropping)
SonuçKimlik doğrulama sağlanırVeriler güvenli şekilde iletilir

💡 İkisi birlikte çalışır. Biri olmadan diğeri güvenliği tamamlayamaz.


🔗 Sertifika Zinciri (Chain of Trust)

SSL sertifikaları, güvenin kökten (Root CA) son kullanıcıya (Leaf Certificate) kadar aktarıldığı bir zincir oluşturur.

KatmanGörevÖrnek
Root CAGüvenin temelidir, işletim sisteminde ön yüklüdürDigiCert Global Root G2
Ara CASertifikaları imzalar, kök CA’yı korurLet’s Encrypt R3
Leaf (Sunucu) SertifikasıSitenizde kurulu olan sertifikadırwww.rabisu.cloud

⚠️ Sunucunuz ara sertifikaları göndermezse “Eksik Zincir Hatası” alırsınız (verify return:20).


🧰 Komut Satırıyla SSL Doğrulama Testleri

1️⃣ openssl s_client

openssl s_client -connect rabisu.cloud:443 -servername rabisu.cloud -showcerts

Bu komut, sunucunun sertifika zincirini gösterir. verify return:1 → başarı, verify return:20 → ara sertifika eksik.

2️⃣ curl --verbose


curl https://rabisu.cloud -v

Bağlantı sürecindeki TLS handshake detaylarını gösterir. Başarılıysa şifreleme protokolü görünür, hatalıysa neden belirtilir.

3️⃣ Online Test Araçları

AraçAçıklama
SSL Labs (ssllabs.com)SSL yapılandırmanıza not verir, zayıf protokolleri listeler.
DigiCert SSL CheckerAra sertifika ve kurulum hatalarını tespit eder.

💻 Uygulama Kodunda SSL Doğrulaması

🐍 Python (requests)


import requests
resp = requests.get('https://api.ornek.com', timeout=10)
print(resp.status_code)

requests doğrulamayı varsayılan olarak yapar. Geçersiz sertifika varsa hata verir.

🟢 Node.js (axios)


const axios = require('axios');
const agent = new (require('https').Agent)({ rejectUnauthorized: true });

axios.get('https://api.ornek.com', { httpsAgent: agent })
.then(res => console.log(`Durum: ${res.status}`))
.catch(err => console.error(`Hata: ${err.message}`));

rejectUnauthorized: true ayarıyla SSL doğrulaması zorunlu hale gelir.


🧪 Kendinden İmzalı Sertifikalar (Self-Signed)

Kendinden imzalı sertifikalar yalnızca test veya dahili ağlarda kullanılmalıdır.

DurumGüvenli Yaklaşım
Üretim OrtamıAsla kullanma, güvenilir CA’dan sertifika al.
Test OrtamıSertifikayı sistem trust store’una ekle.
YönetimSüre ve iptal durumlarını düzenli kontrol et.

🧠 SSL Doğrulaması İçin En İyi Uygulamalar

UygulamaAçıklama
Güvenilir CA kullanınLet’s Encrypt veya ticari CA’lardan sertifika alın.
Tam zincir sununfullchain.pem dosyasını Nginx/Apache yapılandırmasına ekleyin.
Otomatik yenilemecertbot renew --quiet ile yenilemeyi otomatize edin.
TLS 1.2+ kullanınEski SSL 3.0/TLS 1.0 sürümlerini kapatın.
Güvenlik başlıkları ekleyinHSTS, CSP gibi HTTP header’larını ekleyin.

🚫 Sık Yapılan Hatalar

HataEtkisiÇözüm
Doğrulamayı devre dışı bırakmakMITM saldırılarına açık hale getirirAsla verify=False kullanma
Yanlış sistem saatiSertifika geçersiz görünürNTP senkronizasyonu yap
Eksik Ara SertifikaCERTIFICATE_VERIFY_FAILED hatasıZinciri tam yükle
Alan adı uyumsuzluğu“Domain eşleşmiyor” hatasıCN/SAN değerlerini düzelt
Revocation kontrolünü atlamakİptal edilmiş sertifikalar geçerli görünürOCSP stapling etkinleştir

❓ Sıkça Sorulan Sorular (SSS)

1. SSL doğrulaması neden önemlidir?

Kullanıcının doğru sunucuya bağlandığını kanıtlar, MITM saldırılarını önler.

2. SSL doğrulama ve şifreleme farkı nedir?

Doğrulama kimliği, şifreleme gizliliği sağlar. Biri olmadan güven tamamlanmaz.

3. SSL: CERTIFICATE_VERIFY_FAILED hatası neden olur?

Sertifika süresi dolmuş, zincir eksik veya alan adı yanlış olabilir.

4. curl veya Python’da doğrulamayı kapatmak güvenli mi?

Hayır. Güvenliği tamamen ortadan kaldırır. Bunun yerine hatayı düzelt.

5. En iyi test araçları hangileridir?

openssl, curl -v, SSL Labs, DigiCert Checker.


##🏁 Sonuç SSL/TLS doğrulaması yalnızca veriyi şifrelemez, aynı zamanda güven sağlar. Sunucunuzun sertifikalarını doğru yapılandırmak, hem kullanıcı güvenliği hem SEO sıralaması açısından önemlidir.

🌩️ Rabisu Bulut üzerinde SSL doğrulamasını kolayca yapılandırabilir, sertifikalarınızı otomatik yenileyebilirsiniz.