Son güncelleme: Nisan 2026 · AnomixLabs Teknik Ekibi
HTTPS artık seçenek değil, zorunluluk. Google 2018'den bu yana HTTP siteleri 'Güvenli Değil' olarak işaretliyor. Let's Encrypt ile bu ücretsiz ve otomatik.
1. Neden Let's Encrypt?
Let's Encrypt, 2016'da kurulan ve yılda 3 milyar üzerinde aktif sertifika veren ücretsiz, otomatik ve açık Sertifika Otoritesi'dir. Destekçiler: Mozilla, EFF, Cisco, Google. Alternatiflere (Comodo, DigiCert) kıyasla: ücretsiz, 90 günlük sertifika, tam otomasyon, DV (Domain Validation) sertifika.

2. Nginx ve Certbot Kurulumu
# Ubuntu 22.04 / 24.04
$ sudo apt update
$ sudo apt install nginx
$ sudo systemctl enable nginx
# Certbot — snap paketi (önerilen, her OS için güncel)
$ sudo snap install --classic certbot
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
# Certbot sürümünü doğrula
$ certbot --version
# certbot 2.x.x
3. Güvenlik Duvarı (UFW) Yapılandırması
Certbot sertifika almadan önce sunucunun 443 portunu dışarıya açması gerekir. Ubuntu'da varsayılan güvenlik duvarı UFW'dir:
# SSH erişimini güvence altına al — bunu ÖNCE yapın!
$ sudo ufw allow ssh
# UFW'yi etkinleştir
$ sudo ufw enable
# Nginx için HTTP (80) + HTTPS (443) profilini ekle
$ sudo ufw allow 'Nginx Full'
# Artık yalnız HTTP kuralına gerek yok
$ sudo ufw delete allow 'Nginx HTTP'
# Durumu doğrula
$ sudo ufw status
Beklenen çıktı:
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx Full ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx Full (v6) ALLOW Anywhere (v6)
Kritik uyarı: ufw enable komutunu çalıştırmadan önce mutlaka allow ssh yapın. Aksi takdirde mevcut SSH oturumunuz kesilir ve sunucuya erişemez hale gelirsiniz. Bunu bir kez yaşayan unutmaz.
4. SSL Sertifikası Alma: Nginx Plugin
# Tek komutla hem sertifika al hem Nginx konfigürasyonunu güncelle
$ sudo certbot --nginx -d orneksite.com -d www.orneksite.com
# Başarılı çıktı:
# Successfully received certificate.
# Certificate is saved at: /etc/letsencrypt/live/orneksite.com/fullchain.pem
# Key is saved at: /etc/letsencrypt/live/orneksite.com/privkey.pem
# This certificate expires on 2026-07-15
5. Nginx Konfigürasyonu (Certbot Sonrası)
server {
listen 80;
server_name orneksite.com www.orneksite.com;
return 301 https://$host$request_uri; # HTTP → HTTPS yönlendirme
}
server {
listen 443 ssl http2;
server_name orneksite.com www.orneksite.com;
ssl_certificate /etc/letsencrypt/live/orneksite.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/orneksite.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
# OCSP Stapling
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
# HSTS
add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains; preload' always;
location / {
include proxy_params;
proxy_pass http://unix:/run/gunicorn.sock;
}
}
6. Otomatik Yenileme
Let's Encrypt sertifikaları 90 gün geçerlidir. Certbot snap paketi, kurulumda otomatik timer kurar. Manuel doğrulama:
# Kalan süreyi kontrol et
$ sudo certbot certificates
# Yenileme simülasyonu (gerçekte yenilemez)
$ sudo certbot renew --dry-run
# Systemd timer'ı kontrol et
$ sudo systemctl status snap.certbot.renew.timer
# Manuel yenileme (gerekirse)
$ sudo certbot renew --force-renewal
7. Wildcard Sertifika (DNS Challenge)
*.orneksite.com gibi tüm alt domainleri kapsayan sertifika için DNS-01 challenge gerekir. Alan adı sağlayıcınızda TXT kaydı eklemenizi ister:
# Wildcard — tüm alt domainler için
$ sudo certbot certonly --manual \
--preferred-challenges dns \
-d orneksite.com \
-d '*.orneksite.com'
# DNS TXT kaydı eklemenizi ister:
# _acme-challenge.orneksite.com → [verilen değer]
# Cloudflare kullananlar için otomatik:
$ pip install certbot-dns-cloudflare
$ certbot certonly --dns-cloudflare --dns-cloudflare-credentials creds.ini \
-d orneksite.com -d '*.orneksite.com'
8. Cloudflare Flexible SSL Tehlikesi
Uyarı: Cloudflare'in 'Flexible SSL' modunu kullanmayın. Bu modda tarayıcı ile Cloudflare arası HTTPS, ama Cloudflare ile sunucunuz arası HTTP. Sunucunuz Let's Encrypt sertifikası olmadan SSL Labs A+ alamaz ve kullanıcı verisi son milde şifrelenmez. Her zaman 'Full (strict)' modunu kullanın.
9. Django settings.py HTTPS Güvenlik Ayarları
# Üretim ortamında (DEBUG=False)
SECURE_SSL_REDIRECT = True
SECURE_HSTS_SECONDS = 31536000 # 1 yıl
SECURE_HSTS_INCLUDE_SUBDOMAINS = True
SECURE_HSTS_PRELOAD = True
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
SECURE_REFERRER_POLICY = 'same-origin'
SECURE_CONTENT_TYPE_NOSNIFF = True
X_FRAME_OPTIONS = 'DENY'
10. Let's Encrypt Rate Limits
Dikkat: Let's Encrypt aynı domain için haftada 5 sertifika limiti uyguluyor. Test sırasında bu limite takılmamak için staging ortamı kullanın:
# Staging (test) ortamı — gerçek limit yok
$ sudo certbot --nginx --staging -d test.orneksite.com
# Staging sertifikası tarayıcı uyarısı verir ama fonksiyonel
11. SSL Labs A+ Skoru Doğrulama
ssllabs.com/ssltest/ adresinde domain'inizin SSL konfigürasyonunu test edin. A+ skoru için: TLS 1.2 ve 1.3 protokolleri, güçlü cipher suites, HSTS preload ve OCSP stapling gereklidir. Certbot'un varsayılan konfigürasyonu çoğu gereksinimi karşılar.

Özet
Let's Encrypt + Certbot + Nginx: ücretsiz, otomatik ve endüstri standardında SSL. Ubuntu 24.04'te snap ile 10 dakikada A+ skoru. Django'da SECURE_* ayarlarını ve Cloudflare Full Strict modunu tamamlayın.
Sıkça Sorulan Sorular
SSL sertifikası neden 90 günde bir yenileniyor? expand_more
SECURE_SSL_REDIRECT = True Nginx arkasında sorun çıkarır mı? expand_more
Wildcard sertifika ile normal sertifika arasındaki fark nedir? expand_more
Sertifika yenileme başarısız olursa ne olur? expand_more
Sertifika IP adresi için alınabilir mi? expand_more
OCSP Stapling nedir ve neden önemli? expand_more
Let's Encrypt'e alternatif ücretsiz SSL var mı? expand_more
Ali Kasımoğlu
Full-stack Geliştirici & AnomixLabs Kurucusu
Python ve Django ekosisteminde uzmanlaşmış bir yazılım geliştirici. Modern web mimarileri, yapay zeka entegrasyonları ve minimalist kullanıcı deneyimleri üzerine odaklanıyor. AnomixLabs çatısı altında, karmaşık problemleri yalın ve etkili dijital çözümlere dönüştürmeyi hedefliyor.