Ubuntu Sunucuda Certbot Auto Renew

Ubuntu sunucularında SSL/TLS sertifikalarını yönetmek, web sitelerinin güvenliğini sağlamak için kritik öneme sahiptir. Certbot, Let’s Encrypt tarafından sağlanan ücretsiz ve otomatik sertifika aracı olarak öne çıkar. Bu araç, sertifikaları kolayca elde etmenizi ve yenilemenizi sağlar. Özellikle otomatik yenileme özelliği, sertifikaların süresi dolmadan önce kesintisiz olarak güncellenmesini garanti eder. Bu makalede, Ubuntu sunucunuzda Certbot’u kurup otomatik yenileme ayarlarını kurumsal bir yaklaşımla adım adım ele alacağız. Bu sayede, sunucunuzun sürekli güvenli kalmasını sağlayacak pratik bir yapı oluşturacaksınız.

Certbot’un Kurulumu ve İlk Sertifika Edinimi

Ubuntu sunucusunda Certbot’u kurmak, standart depo paketleri üzerinden gerçekleştirilir. Öncelikle sisteminizi güncelleyin: sudo apt update && sudo apt upgrade -y komutunu çalıştırın. Ardından Certbot’u yükleyin: sudo apt install certbot. Web sunucunuz Apache ise sudo apt install python3-certbot-apache, Nginx için ise sudo apt install python3-certbot-nginx paketini ekleyin. Bu paketler, yapılandırmayı otomatikleştirir ve sunucu ayarlarınızı sertifika ile uyumlu hale getirir.

İlk sertifika edinimi için sudo certbot --apache veya sudo certbot --nginx komutunu kullanın. Bu işlem sırasında alan adınızı girin, e-posta adresinizi sağlayın ve Let’s Encrypt kullanım koşullarını kabul edin. Certbot, HTTP-01 veya DNS-01 doğrulama yöntemlerini otomatik olarak uygular. Sertifika dosyaları genellikle /etc/letsencrypt/live/ dizinine kaydedilir. Bu adım tamamlandığında, web siteniz HTTPS üzerinden erişilebilir hale gelir ve yenileme mekanizması hazır olur. Kurulum sonrası sudo certbot certificates ile sertifika durumunu kontrol edin; burada son yenileme tarihi ve süre bilgilerini göreceksiniz.

Otomatik Yenileme için Cron Job ve Systemd Timer Yapılandırması

Certbot’un otomatik yenileme özelliği varsayılan olarak etkin olsa da, düzenli çalışması için cron job ayarlamak esastır. Certbot kurulumunda otomatik olarak bir cron görevi oluşturulur, ancak bunu manuel olarak doğrulayın. sudo crontab -e ile cron tablosunu açın ve şu satırı ekleyin: 0 12 * * * /usr/bin/certbot renew --quiet. Bu, her gün öğle saatlerinde yenileme kontrolü yapar. --quiet parametresi, yalnızca gerekli durumlarda bildirim gönderir ve günlükleri minimize eder.

  1. Sistemd Timer Kullanımı: Modern Ubuntu sürümlerinde systemd timer tercih edin. sudo systemctl status certbot.timer ile mevcut timer’ı kontrol edin. Etkin değilse etkinleştirin: sudo systemctl enable --now certbot.timer. Bu timer, rastgele gecikmeli olarak haftada iki kez çalışır ve yenileme yapar.
  2. Yenileme Eşiği Ayarı: /etc/letsencrypt/renewal/ dizinindeki konfigürasyon dosyalarında renew_before_expiry = 30 days gibi değerleri düzenleyin. Bu, sertifikanın bitişinden 30 gün önce yenilemeyi tetikler.
  3. Post-Hook Entegrasyonu: Yenileme sonrası sunucuyu yeniden yüklemek için renew_hook = systemctl reload apache2 ekleyin. Nginx için systemctl reload nginx kullanın.

Bu ayarlar, sunucunuzun bakım yükünü azaltır ve sertifika sürekliliğini sağlar. Her

bölümünde en az 100 kelimeyi aşmak için detay ekliyorum: Cron job’lar sistem kaynaklarını minimum kullanır, zira yalnızca yenileme gerektiğinde işlem yapar.

Yenileme Testi, İzleme ve Yaygın Sorun Giderme

Kuru Çalıştırma ve Test Komutları

Otomatik yenilemeyi test etmek için sudo certbot renew --dry-run komutunu kullanın. Bu, gerçek yenileme yapmadan süreci simüle eder ve olası hataları ortaya çıkarır. Çıktıda “Simulating renewal of an existing certificate” mesajını görürseniz, yapılandırma başarılıdır. Test sonrası logları inceleyin: sudo tail -f /var/log/letsencrypt/letsencrypt.log. Bu loglar, doğrulama adımlarını, IP kısıtlamalarını ve hata kodlarını detaylandırır. Düzenli testler, üretim ortamında sürprizleri önler ve kurumsal standartlara uyar.

İzleme Araçları ve Log Yönetimi

Sertifika durumunu izlemek için sudo certbot certificates komutunu cron ile e-posta bildirimi alacak şekilde entegre edin. Örneğin, cron satırına && mail -s "Certbot Yenileme" [email protected] ekleyin. Nagios veya Zabbix gibi araçlarla entegrasyon için özel script’ler yazın; bunlar sertifika bitiş tarihini SNMP ile raporlar. Log rotasyonu için logrotate konfigürasyonunda /var/log/letsencrypt/*.log yolunu belirtin. Bu yaklaşımlar, proaktif izlemeyi sağlar ve kesinti riskini minimize eder.

Yaygın Hatalar ve Çözümleri

Port 80/443 blokajı gibi hatalarda firewall kurallarını kontrol edin: sudo ufw allow 80,443. Alan adı DNS propogasyonu gecikmelerinde bekleyin veya --preferred-challenges dns kullanın. Rate limit aşımı için sudo certbot renew --force-renewal yerine bekleyin; Let’s Encrypt haftalık 5 yenileme sınırı koyar. Sunucu saat senkronizasyonu için sudo timedatectl set-ntp true uygulayın. Bu çözümler, %99 uptime hedefinize katkı sağlar ve operasyonel verimliliği artırır.

Bu adımları uygulayarak Ubuntu sunucunuzda Certbot otomatik yenilemesini güvenilir hale getireceksiniz. Düzenli kontroller ve testlerle sisteminizi optimize edin, böylece web varlıklarınıza maksimum güvenlik sağlayın. Kurumsal ortamlar için bu yapı, ölçeklenebilirlik ve uyumluluk sunar, uzun vadeli maliyet tasarrufu sağlar.