Let's Encrypt Otomatik Yenileme Hataları ve Çözümleri

Let's Encrypt Otomatik Yenileme Hataları ve Çözümleri - Corelux
21 Nis 2026
Paylaş:

Let's Encrypt Otomatik Yenileme Hataları ve Çözümleri

Son Güncelleme: Nisan 2026

Let's Encrypt sertifikalarının güvenli ve kesintisiz kullanımı için otomatik yenileme kritik öneme sahiptir. Bu rehberde, yaygın yenileme hataları, çözümleri ve üretim ortamında uygulanabilecek pratik adımları detaylı şekilde ele alacağız.

İçindekiler

Let's Encrypt Nedir?

Let's Encrypt, ücretsiz, otomatik ve açık bir Certificate Authority (Sertifika Otoritesi) sağlayıcısıdır. Amaç, web trafiğini şifreleyerek HTTPS kullanımını yaygınlaştırmaktır. Let's Encrypt sertifikaları genellikle 90 gün geçerlidir; bu nedenle otomatik yenileme kurulması gereklidir.

Yaygın Yenileme Hataları

Otomatik yenileme süreçlerinde karşılaşılan sık problemler aşağıdaki gibidir. Her madde için hızlı çözüm önerisi de eklenmiştir.

  • DNS Problemleri: Alan adı doğru yönlendirilmemiş veya TTL değerleri yüksek ise ACME doğrulaması başarısız olur.
  • Port Erişimi: HTTP-01 doğrulaması için 80/443 portları engellenmiş olabilir.
  • Webroot ve VHost Uyumsuzluğu: Webroot yolu yanlış ayarlanmışsa doğrulama dosyaları erişilemez.
  • Rate Limit (Kota) Aşımı: Aynı alan adı için çok sık istek gönderilirse Let's Encrypt kısıtlamaya gidebilir.
  • Yetki ve Dosya İzinleri: Certbot'un oluşturduğu dosyalara erişim yoksa yenileme başarısız olur.
  • Eski Certbot/ACME İstemcisi: Güncellenmemiş istemciler yeni ACME spec'leriyle uyumsuz olabilir.
  • Firewall / WAF Engellemeleri: Doğrulama talepleri güvenlik duvarı veya WAF tarafından engellenebilir.

Otomatik Yenileme Kurulumu

En yaygın kullanılan yöntem Certbot ile otomatik yenilemedir. Aşağıda tipik bir kurulum ve test adımları yer almaktadır.

1. Certbot Kurulumu (Örnek: Ubuntu/Debian)

sudo apt update
sudo apt install certbot python3-certbot-nginx  # nginx kullanıyorsanız
sudo apt install certbot python3-certbot-apache # apache için

2. İlk Sertifika Alma (Webroot Örneği)

Webroot yöntemi, mevcut vhost yapılandırmasını bozmadan çalışır. /var/www/example sizin webroot yolunuz olsun.

sudo certbot certonly --webroot -w /var/www/example -d example.com -d www.example.com

3. Yenilemeyi Test Etme

sudo certbot renew --dry-run

Bu komut gerçek yenileme yapmaz, ancak süreci test eder. Hata alırsanız log'lar ve detayları inceleyin.

Cron vs systemd: Hangisi Tercih Edilmeli?

Cron ve systemd timer yöntemleri otomatikleştirme için kullanılır. Her iki yöntemin avantajları ve dezavantajlarını aşağıdaki tabloda karşılaştırıyoruz.

Özellik Cron systemd-timer
Kolaylık Basit Daha esnek
Gerçek zamanlı log Ek yapılandırma gerekir journalctl ile kolayca takip edilir
Hata yeniden deneme Elle script ile yönetilmeli OnFailure vs RestartSec ile entegre
Öneri Basit sunucular için yeterli Üretim ortamı için tavsiye edilir

systemd-timer Örneği

Aşağıda certbot yenileme için basit bir systemd timer yapılandırması örneği verilmiştir.

/etc/systemd/system/certbot-renew.service

[Unit]
Description=Certbot Renew Service

[Service]
Type=oneshot
ExecStart=/usr/bin/certbot renew --quiet

# /etc/systemd/system/certbot-renew.timer
[Unit]
Description=Runs certbot renew twice daily

[Timer]
OnCalendar=*-*-* 00,12:00:00
RandomizedDelaySec=3600
Persistent=true

[Install]
WantedBy=timers.target
sudo systemctl daemon-reload
sudo systemctl enable --now certbot-renew.timer
sudo systemctl list-timers --all | grep certbot-renew

DNS Challenge (Doğrulama) Nasıl Yapılır?

DNS-01 doğrulaması, özellikle wildcard (*.example.com) sertifikalar için gereklidir. DNS sağlayıcınız API desteği varsa bu işi tamamen otomatik hale getirebilirsiniz.

Örnek: DNS Provider API ile Certbot Plugin

Genellikle sağlayıcıya özel plugin yüklenir (ör: python3-certbot-dns-cloudflare) ve bir API anahtarı kullanılır.

sudo apt install python3-certbot-dns-cloudflare

# ~/.secrets/cloudflare.ini
# dns_cloudflare_api_token = 0123456789abcdef
sudo chmod 600 ~/.secrets/cloudflare.ini

sudo certbot certonly --dns-cloudflare --dns-cloudflare-credentials ~/.secrets/cloudflare.ini -d example.com -d "*.example.com"

Not: API token izinlerini en az ayrıcalık prensibine göre (least privilege) tanımlayın.

Web Sunucusu (Nginx/Apache) ile İlişkilendirme

Sertifika yenilendikten sonra web sunucusunun yeniden yüklenmesi (reload) gerekebilir. Yenileme sürecine post-hook ekleyerek bunu otomatikleştirebilirsiniz.

Nginx için post-hook örneği

sudo certbot renew --post-hook "systemctl reload nginx"

Apache için post-hook örneği

sudo certbot renew --post-hook "systemctl reload apache2"

Eğer reverse proxy veya load balancer arkasında iseniz, doğrulama trafiğinin uygun sunucuya yönlendirildiğinden emin olun.

Log ve İzleme (Takip) Metodları

Otomatik yenileme başarısını garanti altına almak için log ve alarm mekanizmaları kurmak faydalıdır.

  • Log: Certbot logları varsayılan olarak /var/log/letsencrypt/letsencrypt.log altında tutulur. Düzenli olarak bu dosyayı inceleyin.
  • Monitoring: Basit bir HTTP check (443 portuna TLS el sıkışma testi) ile sertifika geçerlilik süresini izleyin.
  • Alerting: Sertifika süresi 30 gün altına düştüğünde uyarı gönderen bir izleme kuralı oluşturun.

Basit Bash ile Süre Kontrolü

# cert_expiry_check.sh
certbot certificates --cert-name example.com | grep "Expiry Date" || exit 1
# veya openssl ile:
openssl s_client -connect example.com:443 -servername example.com /dev/null | openssl x509 -noout -enddate

Pratik Senaryolar ve Örnekler

Aşağıda gerçek hayatta karşılaşabileceğiniz durumlara yönelik hızlı çözümler bulunmaktadır.

Senaryo 1: Reverse Proxy arkasında çalışan bir uygulama

  • Sorun: Doğrulama dosyalarına dışarıdan erişilemiyor.
  • Çözüm: Reverse proxy üzerinde /.well-known/acme-challenge/ yolunu ilgili backend'e yönlendirin veya webroot yöntemini reverse proxy'nin çalıştığı sunucuda kullanın.

Senaryo 2: Çok sayıda alt alan adı (subdomain) ve wildcard gereksinimi

  • Sorun: Her alt alan adı için ayrı istek yönetimi zahmetli.
  • Çözüm: DNS-01 ile wildcard sertifika alın; DNS sağlayıcınızın API'si varsa token ile tamamen otomatikleştirin.

Senaryo 3: Rate limit hatası

  • Sorun: Too Many Requests (429) hatası alınıyor.
  • Çözüm: Gereksiz test isteklerini durdurun, staging server kullanarak geliştirme yapın, ve istekleri toplu halde göndermeyin. Let's Encrypt rate limit politikalarına göre bekleyin veya domainleri gruplayın.

Sıkça Sorulan Sorular

Let's Encrypt sertifikam neden 90 gün geçerli?

Let's Encrypt politika olarak kısa ömürlü sertifikalar sağlar; bu sayede güvenlik riskleri azalır. Bu nedenle otomatik yenileme tavsiye edilir.

Certbot renew çalışıyor ama site hala eski sertifikayı gösteriyor, neden?

Muhtemelen web sunucusu sertifika dosyasını yeniden yüklemedi. Yenileme sonrası systemctl reload nginx veya systemctl reload apache2 komutları ile sunucuyu yeniden yükleyin. Certbot'a --post-hook eklemek bu hatayı önler.

DNS-01 yöntemi için API yoksa ne yapmalıyım?

API yoksa DNS kayıtlarını manuel olarak eklemek bir alternatiftir ancak otomasyon olmaz. Alternatif olarak wildcard'a ihtiyaç yoksa HTTP-01 (webroot) yöntemi kullanabilirsiniz.

Renew --dry-run başarısız oldu, gerçek yenileme denemeli miyim?

Hayır. --dry-run hata veriyorsa gerçek yenileme de büyük ihtimalle başarısız olacaktır. Önce logları ve hata mesajlarını inceleyin, DNS/port/izin sorunlarını çözün.

Certbot loglarını nereden takip edebilirim?

Varsayılan log yolu /var/log/letsencrypt/letsencrypt.log dir. Ayrıca systemd timer kullanıyorsanız journalctl -u certbot-renew.service ile journal kayıtlarını görebilirsiniz.

Sonuç

Let’s Encrypt sertifikalarının sorunsuz çalışması için otomatik yenileme mekanizması kurmak ve sürekli izleme sağlamak önemlidir. Özetle:

  1. Doğrulama Yöntemi Seçimi: Webroot (HTTP-01) veya DNS-01 (özellikle wildcard için).
  2. Otomasyon: systemd timer veya güvenilir cron görevleri ile düzenli yenileme.
  3. Post-hook: Yenileme sonrası web sunucusunu yeniden yükleyin.
  4. İzleme: Log ve sertifika süresi kontrolleri ile alarm kurun.

Corelux olarak sertifika yönetimi, SSL desteği ve VPS/VDS altyapı konularında destek sunuyoruz. İhtiyacınıza göre SSL Sertifikası hizmetimizden yararlanabilir, eğer sunucu altyapınızı güçlendirmek isterseniz Türkiye VPS Sunucu veya Kiralık Sunucu seçeneklerimizi inceleyebilirsiniz. Ayrıca sertifika yedeklemesi ve yönetimi için Yedekleme Hizmeti sayfamız faydalı olacaktır.

Yazar

Boran BAR

Chat on WhatsApp