sunucuhataları
teknik çözüm merkezi
Ara Giriş Yap Üye Ol
🏠 Ana Sayfa 📚 Kurulum Rehberleri
Kategoriler
🌐 Web Sunucuları 🐧 İşletim Sistemleri 📦 Sanallaştırma & VPS 🖥️ Kontrol Panelleri 🔒 SSL & Güvenlik 📝 CMS & Uygulamalar 🗄️ Veritabanı 📧 Mail Sunucusu 🗨️ Forum ℹ️ Hakkımızda 📧 İletişim
Giriş Yap Üye Ol
Ana Sayfa SSL & Güvenlik Let's Encrypt SSL Certbot ile Otomatik SSL Yenileme Sorunu Nasıl ...
🔐 Let's Encrypt SSL

Certbot ile Otomatik SSL Yenileme Sorunu Nasıl Çözülür?

Certbot otomatik SSL yenileme sorunları ve çözümleri: hata mesajları, pre/post hook, dry run ve systemd timer yapılandırması.

📅 16 Mayıs 2025 👁 7 görüntülenme ⏱ 4 dk okuma
𝕏 Paylaş
📋 İçindekiler göster/gizle

Let's Encrypt ve Certbot Nedir?

Let's Encrypt, ücretsiz, otomatize edilmiş ve açık bir Sertifika Otoritesi (CA) tarafından sunulan TLS/SSL sertifika hizmetidir. Certbot ise Let's Encrypt'in resmi istemci aracıdır; sertifika alımını, kurulumunu ve yenilenmesini otomatikleştirir. Let's Encrypt sertifikaları 90 günde bir yenilenmesi gerektiğinden, otomatik yenileme kritik önem taşır.

Certbot, systemd timer veya cron job aracılığıyla her gün iki kez yenileme kontrolü yapar. Sertifikanın süresi dolmaya 30 günden az kaldığında yenileme başlatılır. Bu süreçte çeşitli hatalar ortaya çıkabilir; bu rehber en yaygın yenileme sorunlarını ve çözümlerini kapsar.

Certbot Kurulumu

sudo apt install certbot python3-certbot-nginx -y
# Apache için:
sudo apt install certbot python3-certbot-apache -y

Sertifika Durumunu Kontrol Etme

# Tüm sertifikaları listele
sudo certbot certificates

# Belirli domain sertifika bilgisi
sudo openssl x509 -in /etc/letsencrypt/live/example.com/cert.pem -noout -dates

# Sertifikanın ne zaman dolacağını öğren
sudo certbot certificates | grep "Expiry Date"

Dry Run ile Yenileme Testi

Gerçek sertifika yenilemeden önce her zaman dry run ile test edin:

sudo certbot renew --dry-run
sudo certbot renew --dry-run --verbose

Manuel Yenileme

sudo certbot renew
sudo certbot renew --force-renewal  # Süre dolmasa bile zorla yenile

Yaygın Hata: Port 80 Dolu

Certbot'un HTTP-01 challenge doğrulaması için port 80'e ihtiyacı vardır:

sudo lsof -i :80
# Nginx çalışıyorsa --nginx veya --webroot kullanın
# Standalone mod için Nginx'i geçici durdur:
sudo systemctl stop nginx
sudo certbot renew --standalone
sudo systemctl start nginx

Hata: "Problem binding to port 80"

# Hangi process port 80'i kullanıyor?
sudo ss -tlnp | grep :80

# Webroot challenge kullanın (sunucu çalışırken):
sudo certbot renew --webroot -w /var/www/html

Pre ve Post Hook ile Nginx/Apache Reload

Sertifika yenilendikten sonra web sunucusunun otomatik reload edilmesi için hook oluşturun:

sudo mkdir -p /etc/letsencrypt/renewal-hooks/pre
sudo mkdir -p /etc/letsencrypt/renewal-hooks/post
sudo mkdir -p /etc/letsencrypt/renewal-hooks/deploy
sudo nano /etc/letsencrypt/renewal-hooks/post/reload-nginx.sh
#!/bin/bash
systemctl reload nginx
sudo chmod +x /etc/letsencrypt/renewal-hooks/post/reload-nginx.sh

Systemd Timer ile Otomatik Yenileme (Önerilen)

Certbot kurulumu otomatik olarak systemd timer oluşturur:

# Timer durumunu kontrol et
sudo systemctl status certbot.timer
sudo systemctl list-timers | grep certbot

# Timer'ı manuel çalıştır
sudo systemctl start certbot.service
sudo journalctl -u certbot.service

Cron ile Otomatik Yenileme (Alternatif)

sudo crontab -e
# Her gün saat 03:00 ve 15:00'de yenileme kontrolü yap
0 3,15 * * * /usr/bin/certbot renew --quiet --post-hook "systemctl reload nginx" >> /var/log/certbot-renew.log 2>&1

Hata: "DNS problem: NXDOMAIN looking up A for..."

# Alan adı DNS kayıtlarını kontrol et
dig A example.com
nslookup example.com
# Alan adının IP'nize işaret ettiğini doğrulayın

Hata: "too many requests" (Rate Limit)

Let's Encrypt, haftalık 5 sertifika limiti uygular. Test için staging ortamı kullanın:

sudo certbot --staging -d example.com --nginx
# Staging sertifikalar tarayıcıda "güvenilmez" gösterir ama rate limit yoktur

Hata: Nginx Reload Başarısız

sudo nginx -t
sudo journalctl -u nginx --since "5 minutes ago"
# Nginx config hatalarını düzeltin, sonra:
sudo systemctl reload nginx

Certbot Log Analizi

sudo cat /var/log/letsencrypt/letsencrypt.log | tail -100
sudo journalctl -u certbot -n 50

Wildcard Sertifika Yenileme

# Wildcard sertifikalar DNS-01 challenge gerektirir
sudo certbot renew --cert-name example.com --preferred-challenges dns-01

Sertifika İptal Etme

sudo certbot revoke --cert-path /etc/letsencrypt/live/example.com/cert.pem
sudo certbot delete --cert-name example.com

Sonuç

Certbot ile otomatik SSL yenileme sürecini kapsamlı biçimde öğrendiniz. Dry run testleri, pre/post hook'lar, systemd timer ve cron seçenekleriyle sertifika yenileme sürecini tamamen otomatize edebilirsiniz. En yaygın hata mesajlarını ve çözümlerini bilerek SSL sertifikasının dolmasından kaynaklanan erişim sorunlarını önleyebilirsiniz.

🤔 Bu kurulumda sorun mu yaşıyorsunuz?

Hata mesajınızı kopyalayıp foruma konu açın. Topluluğumuz size özel durumunuza göre yardımcı olacaktır.

🗨️ Foruma Katıl & Yardım Al

Yorumlar

Henüz yorum yok. İlk yorumu siz yapın!

Yorum Yap

Yorumunuz onaylandıktan sonra yayınlanır.