SSL/TLS Sertifikası Kurulumu: Let's Encrypt Rehberi
Let's Encrypt ile ücretsiz SSL/TLS sertifikası kurulumu, Certbot kullanımı, Nginx ve Apache yapılandırması, otomatik yenileme ve sık karşılaşılan sorunların çözümü.
İçindekiler
SSL/TLS Sertifikası Kurulumu: Let's Encrypt Rehberi
SSL/TLS sertifikaları, web siteniz ile ziyaretçileriniz arasındaki iletişimi şifreler. HTTPS protokolü artık SEO sıralaması, tarayıcı güveni ve kullanıcı güvenliği açısından zorunlu hale gelmiştir. Let's Encrypt, ücretsiz, otomatik ve açık kaynaklı bir sertifika otoritesidir.
SSL/TLS Nedir?
SSL (Secure Sockets Layer) ve onun modern halefi TLS (Transport Layer Security), ağ üzerinden iletilen verileri şifreleyen protokollerdir. Bir web sitesinde HTTPS kullanıldığında:
- Veriler şifrelenerek iletilir (gizlilik)
- Sunucu kimliği doğrulanır (kimlik doğrulama)
- Veriler değiştirilemez (bütünlük)
Modern tarayıcılar HTTP sitelerini "Güvenli Değil" olarak işaretler. Google, HTTPS'i sıralama faktörü olarak kullanır. REXE sunucularında SSL kurulumu ücretsiz ve kolaydır.
Certbot Kurulumu
Certbot, Let's Encrypt sertifikalarını otomatik olarak alan ve yenileyen resmi araçtır.
Debian/Ubuntu
# Sistem güncellemesi
sudo apt update && sudo apt upgrade -y
# Certbot ve Nginx eklentisini kur
sudo apt install certbot python3-certbot-nginx -y
# Apache kullanıyorsanız
sudo apt install certbot python3-certbot-apache -y
RHEL/CentOS/AlmaLinux
# EPEL deposunu ekle
sudo dnf install epel-release -y
# Certbot kur
sudo dnf install certbot python3-certbot-nginx -y
Snap ile Kurulum (Önerilen)
# Snap'i kur
sudo apt install snapd -y
# Certbot'u snap ile kur
sudo snap install --classic certbot
# Sembolik link oluştur
sudo ln -s /snap/bin/certbot /usr/bin/certbot
# Sürümü kontrol et
certbot --version
Nginx için SSL Sertifikası Alma
Ön Koşullar
Sertifika almadan önce:
- Domain'iniz sunucunuzun IP adresine yönlendirilmiş olmalı
- 80 ve 443 portları açık olmalı
- Nginx çalışıyor olmalı
# Domain yönlendirmesini kontrol et
nslookup example.com
# Port durumunu kontrol et
sudo ufw status
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Otomatik Nginx Yapılandırması
# Certbot Nginx eklentisi ile sertifika al ve yapılandır
sudo certbot --nginx -d example.com -d www.example.com
# Sadece sertifika al, yapılandırmayı kendin yap
sudo certbot certonly --nginx -d example.com -d www.example.com
# Wildcard sertifika (DNS doğrulama gerektirir)
sudo certbot certonly --manual --preferred-challenges dns -d "*.example.com" -d example.com
Certbot kurulum sırasında e-posta adresinizi ve HTTPS yönlendirme tercihini sorar:
Enter email address: admin@example.com
Agree to terms: Y
Share email with EFF: N
Redirect HTTP to HTTPS: 2 (Redirect)
Manuel Nginx SSL Yapılandırması
# Nginx sanal host dosyasını düzenle
sudo nano /etc/nginx/sites-available/example.com
# HTTP'yi HTTPS'e yönlendir
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$server_name$request_uri;
}
# HTTPS sunucu bloğu
server {
listen 443 ssl http2;
server_name example.com www.example.com;
# Let's Encrypt sertifika dosyaları
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
# Güvenli SSL ayarları
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
ssl_prefer_server_ciphers off;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;
# HSTS (6 ay)
add_header Strict-Transport-Security "max-age=15768000" always;
root /var/www/example.com/html;
index index.html index.php;
location / {
try_files $uri $uri/ =404;
}
}
# Yapılandırmayı test et
sudo nginx -t
# Nginx'i yeniden yükle
sudo systemctl reload nginx
Apache için SSL Sertifikası Alma
# SSL modülünü etkinleştir
sudo a2enmod ssl
sudo a2enmod rewrite
# Certbot Apache eklentisi ile sertifika al
sudo certbot --apache -d example.com -d www.example.com
# Sadece sertifika al
sudo certbot certonly --apache -d example.com
Manuel Apache SSL Yapılandırması
<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
# Güvenli protokoller
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256
Header always set Strict-Transport-Security "max-age=15768000"
</VirtualHost>
# HTTP yönlendirme
<VirtualHost *:80>
ServerName example.com
Redirect permanent / https://example.com/
</VirtualHost>
Otomatik Yenileme
Let's Encrypt sertifikaları 90 gün geçerlidir. Certbot otomatik yenileme için bir systemd timer veya cron job kurar.
# Otomatik yenilemeyi test et
sudo certbot renew --dry-run
# Mevcut timer'ı kontrol et
sudo systemctl status certbot.timer
# Manuel yenileme
sudo certbot renew
# Yenileme sonrası Nginx'i yeniden yükle
sudo certbot renew --post-hook "systemctl reload nginx"
Cron ile Otomatik Yenileme
# Crontab düzenle
sudo crontab -e
# Her gün 2 kez kontrol et (Let's Encrypt önerisi)
0 0,12 * * * certbot renew --quiet --post-hook "systemctl reload nginx"
Sertifika Durumu Kontrolü
# Tüm sertifikaları listele
sudo certbot certificates
# Sertifika son kullanma tarihini kontrol et
echo | openssl s_client -connect example.com:443 2>/dev/null | openssl x509 -noout -dates
# SSL yapılandırmasını test et
curl -vI https://example.com 2>&1 | grep -E "SSL|TLS|certificate"
Sorun Giderme
Port 80 Kapalı Hatası
# Firewall kontrolü
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# REXE Path Panel'den de portları açın
# Nginx çalışıyor mu?
sudo systemctl status nginx
Domain Yönlendirme Hatası
# DNS propagasyonunu kontrol et
nslookup example.com 8.8.8.8
dig example.com +short
# Sunucu IP'si ile eşleşiyor mu?
curl -4 ifconfig.me
Sertifika Yenileme Hatası
# Detaylı log ile yenile
sudo certbot renew --dry-run -v
# Log dosyasını incele
sudo tail -f /var/log/letsencrypt/letsencrypt.log
Let's Encrypt rate limit uygular: haftada 5 başarısız deneme sonrası 1 saat beklemeniz gerekir. Test için --staging flag'ini kullanın.
# Test ortamında sertifika al (rate limit yok)
sudo certbot --nginx --staging -d example.com
Sonuç
Let's Encrypt ve Certbot ile SSL/TLS sertifikası kurulumu artık dakikalar içinde tamamlanabilir. Otomatik yenileme sayesinde sertifika süresi dolma endişesi ortadan kalkar. REXE sunucularında HTTPS kullanmak hem güvenlik hem de SEO açısından kritik öneme sahiptir.
İlgili Makaleler
VDS Sunucuya SSH ile Bağlanma Rehberi (PuTTY & Terminal)
Linux VDS sunucunuza SSH ile bağlanma adımları: PuTTY, Terminal, anahtar tabanlı kimlik doğrulama, Path Panel firewall kuralı ve güvenlik ipuçları.
Windows VDS'e RDP ile Bağlanma ve Güvenlik Rehberi
Windows Server VDS sunucunuza Uzak Masaüstü (RDP) ile bağlanma adımları, NLA güvenlik ayarları, Path Panel firewall kuralı ve sorun giderme rehberi.
VDS Sunucu İşletim Sistemi Değiştirme Rehberi (Reinstall)
REXE panel üzerinden VDS sunucunuzun işletim sistemini değiştirme adımları, yedekleme önerileri, desteklenen Linux ve Windows Server sürümleri.