SSL/TLS Sertifikaları: Kurulum, Yenileme ve Sorun Giderme
zafer ak
Yazar
SSL/TLS sertifikaları, web siteniz ile ziyaretçiler arasındaki iletişimi şifreleyerek güvenliği sağlar. Bu rehberde sertifika kurulumu ve yönetimini öğreneceksiniz.
SSL/TLS Neden Önemli?
- Veri şifreleme: Kullanıcı verilerini koruma
- Kimlik doğrulama: Web sitesi kimliğini doğrulama
- SEO avantajı: Google HTTPS'i tercih eder
- Güven: Tarayıcıda kilit simgesi
- PCI uyumluluğu: E-ticaret gereksinimleri
Sertifika Türleri
| Tür | Doğrulama | Fiyat | Kullanım |
|---|---|---|---|
| DV (Domain Validation) | Domain sahipliği | Ücretsiz-$50 | Blog, kişisel site |
| OV (Organization Validation) | Şirket doğrulama | $50-$200 | Kurumsal siteler |
| EV (Extended Validation) | Kapsamlı doğrulama | $200-$1000 | E-ticaret, bankalar |
| Wildcard | Tüm alt domainler | $100-$500 | Çoklu subdomain |
Let's Encrypt ile Ücretsiz SSL
Let's Encrypt, ücretsiz DV sertifikaları sunan bir sertifika otoritesidir. Certbot aracı ile otomatik kurulum yapabilirsiniz.
Certbot Kurulumu
# Ubuntu/Debian
sudo apt update
sudo apt install certbot
# Nginx için
sudo apt install python3-certbot-nginx
# Apache için
sudo apt install python3-certbot-apache
Nginx için SSL Kurulumu
# Otomatik yapılandırma
sudo certbot --nginx -d example.com -d www.example.com
# Sadece sertifika alma (manuel yapılandırma)
sudo certbot certonly --nginx -d example.com -d www.example.com
Apache için SSL Kurulumu
# Otomatik yapılandırma
sudo certbot --apache -d example.com -d www.example.com
# Apache SSL modülünü etkinleştirme
sudo a2enmod ssl
sudo systemctl restart apache2
Nginx SSL Yapılandırması
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name example.com www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
# SSL ayarları
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
# HSTS
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
# OCSP Stapling
ssl_stapling on;
ssl_stapling_verify on;
root /var/www/example.com;
index index.html;
}
Apache SSL Yapılandırması
<VirtualHost *:80>
ServerName example.com
Redirect permanent / https://example.com/
</VirtualHost>
<VirtualHost *:443>
ServerName 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
# SSL Protokolleri
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
# HSTS
Header always set Strict-Transport-Security "max-age=31536000"
</VirtualHost>
Otomatik Yenileme
Let's Encrypt sertifikaları 90 gün geçerlidir. Otomatik yenileme ayarlayın:
# Yenileme testi
sudo certbot renew --dry-run
# Cron job ekleme (otomatik yapılır)
sudo systemctl status certbot.timer
# Manuel cron
# /etc/cron.d/certbot
0 0,12 * * * root certbot renew --quiet
Wildcard Sertifika
# DNS challenge ile wildcard sertifika
sudo certbot certonly --manual --preferred-challenges dns -d example.com -d *.example.com
# DNS TXT kaydı eklemeniz istenecek
# _acme-challenge.example.com
Yaygın Sorunlar ve Çözümleri
Sorun 1: Mixed Content
HTTPS sayfada HTTP kaynakları yükleniyor:
<!-- Çözüm: Protokolsüz URL kullanın -->
<img src="//example.com/image.jpg">
<!-- Veya HTTPS kullanın -->
<img src="https://example.com/image.jpg">
Sorun 2: Sertifika Uyumsuzluğu
# Sertifika ve domain eşleşmesini kontrol
openssl s_client -connect example.com:443 -servername example.com | openssl x509 -noout -text | grep DNS
Sorun 3: Zincir Eksik
# Sertifika zincirini kontrol
openssl s_client -connect example.com:443 -showcerts
# fullchain.pem kullandığınızdan emin olun
SSL Test Araçları
- SSL Labs: ssllabs.com/ssltest
- Why No Padlock: whynopadlock.com
- SSL Checker: sslshopper.com
Sonuç
SSL/TLS sertifikaları web güvenliğinin temel taşıdır. Let's Encrypt ile ücretsiz sertifika alabilir ve Certbot ile otomatik yenileme yapabilirsiniz. A+ SSL puanı için güçlü şifreleme ve HSTS kullanmayı unutmayın.