ACME/Let’s Encrypt Otomatik SSL Yenileme: Staging→Prod Akışı
Staging→prod geçişini, cron ve systemd doğrulamasını ve hatasız yenileme akışını adım adım kurun. Kesinti riskini azaltın.
SSL sertifikası yenileme, birçok altyapıda “yapılacaklar listesinde en sonda” kalır. Son kullanma tarihi yaklaşınca doğru ayarın yokluğu servis kesintisi, tarayıcı uyarıları ve e-ticarette kayıp olarak geri döner. Bu rehberde ACME istemcisini (Let’s Encrypt) staging (test) ortamında doğrulayıp prod (gerçek) ortama geçmenin kontrol listesini; ayrıca cron ve systemd ile doğrulama akışını net biçimde kuruyoruz. Amaç: Sertifika yenileme otomasyonunun çalıştığını, hata durumunda ne olacağını ve nereden izleyeceğinizi önceden görmeniz.
1) Staging → prod geçişi neden kritik? (ve risk kontrolü)
Let’s Encrypt’te sertifika alma ve yenileme süreçlerinde iki ayrı ACME uç noktası kullanılır: - Staging: Tarayıcı uyarısı vermeyen bir test akışı değil; amaç hatasız akış denemesi ve limit tüketmeden doğrulamadır. - Prod: Gerçek sertifika limitleri ve gerçek kullanıma yönelik emisyon.
Staging’den prod’a geçmezseniz şu sorunlar yaşanır: - Otomasyon “çalışıyor” sanılır ama prod uç noktasında doğrulama/izin/route farkı nedeniyle yenileme başarısız olur.
Prod’a geçmeden staging doğrulaması yapmanın somut getirileri: - HTTP-01 veya DNS-01 doğrulama adımlarının çalıştığını görürsünüz. - Sunucuda web root, yönlendirme (redirect) kuralları, firewall izinleri ve DNS kayıtlarını kontrol edersiniz. - Yenileme tetikleyicisinin (cron/systemd) gerçekten çalıştığını log üzerinden doğrularsınız.
Staging ile doğrulamanız gereken minimum senaryolar
Aşağıdaki senaryolardan her biri staging üzerinde en az bir kez gerçekleşmelidir: 1. Sertifika ilk kez oluşturma (initial issuance) 2. Otomatik yenileme (renew) 3. Yenileme sonrası servisin yeniden yüklenmesi (nginx/apache reload) 4. Hata durumunda uygun log üretimi (ör. doğrulama başarısız)
Not: “Wildcard” ve “multi-domain (SAN)” kullanıyorsanız staging üzerinde doğru alan adları için doğrulamayı ayrıca test edin.
2) Doğru ACME doğrulama yöntemini seçin: HTTP-01 vs DNS-01
Yenileme başarısı, doğrulama yöntemine bağlıdır. En sık iki yöntem: - HTTP-01: Alan adına gelen isteğin doğrulama dosyasını sunucuya ulaştırmasını ister. - DNS-01: Alan adına geçici TXT kaydının eklenmesini ister.
Aşağıdaki tabloda net karşılaştırma var:
| Kriter | HTTP-01 | DNS-01 |
|---|---|---|
| CDN/WAF kullanımı | CDN cache ve yönlendirmeler doğrulamayı etkileyebilir | CDN etkisi genelde daha sınırlıdır (DNS seviyesi) |
| Sadece 80/443 açık olmalı mı? | Evet, 80 erişimi kritik | Hayır, 53 DNS erişimi/TTL yeterli |
| Otomasyon kolaylığı | Web root düzenlemesi gerekebilir | DNS API/anahtar entegrasyonu gerekir |
| Wildcard destek | Wildcard doğrudan zayıf/uygunsuz | Wildcard için standart yol |
| Hızlı deneme | Genelde hızlı | TXT kaydı yayılımı (propagation) bekletir |
Net öneri
- Sunucunuz sabitse ve 80 portu sorunsuz çalışıyorsa HTTP-01 pratik olabilir.
- Cloud DNS üzerinden wildcard yönetimi, CDN katmanı veya sık IP/route değişimi varsa DNS-01 daha güvenilir bir otomasyon zemini sunar.
3) Staging’da çalıştırma: ACME istemcisi kurulum ve doğrulama
ACME istemcisi olarak pratikte en yaygın seçenek certbot veya daha hafif alternatiflerdir (ör. acme.sh). Bu rehber yöntemi anlatır; kullandığınız istemciye göre komut isimleri değişebilir.
Staging için net akış
- ACME istemcisini kurun.
- Doğrulama yöntemini belirleyin (HTTP-01/DNS-01).
- Staging uç noktasını aktif edin.
- Logları kontrol edin.
- Yenilendikten sonra servisi reload edin.
Örnek bir akış (istemciye göre değişir) şu mantığı izler: - İlk çalıştırmada staging ile sertifikayı alın. - Sertifika dosyalarının beklenen dizine geldiğini doğrulayın. - Reload adımının gerçekten tetiklendiğini kontrol edin.
Yenileme komutunu “deneme” yaptırın
Sertifikanın gerçek son kullanım süresini beklemeden yenileme akışını test etmek için istemcinin “dry-run” benzeri özelliği kullanılır. Bu sayede staging’de renew komutunun tetiklenmesi ve servis reload’unun çalışması teyit edilir.
4) prod’a geçiş: limit tüketmeden güvenli doğrulama
Staging testleri tamamlanınca prod’a geçin. Burada kritik nokta: prod’a geçerken aynı alan adlarıyla sertifikayı yeniden üretmeden önce yenileme mantığının doğru çalıştığından emin olmanızdır.
Prod geçişinde yapılacak 5 kontrol
- DNS kayıtları doğrulama yöntemiyle uyumlu mu?
- HTTP-01 kullanıyorsanız: 80’den gelen istek doğru sunucuya gidiyor mu?
- Sertifika dosya yolları (live/archive) doğru mu?
- Servis reload komutu çalışıyor mu?
- Otomasyon tetikleyicisi (cron/systemd) staging’te log üretti mi?
Log doğrulaması için net hedefler
- Yenileme başlangıcı logu
- ACME doğrulama adımı logu
- Başarılı yenileme sonucu
- Reload tetiklenmesi
Bir otomasyon kurduğunuzda en sık yapılan hata şudur: “Komut çalışıyor” ama reload hiç tetiklenmiyor ya da yanlış bir servis adı kullanıldığı için prod’da yine tarayıcı uyarısı görülüyor.
5) cron mu systemd mi? Yenileme doğrulama akışı tasarımı
Otomatik yenilemenin iki yaygın yolu var: - cron: Belirli aralıklarla komutu çalıştırır. - systemd timers: Daha deterministik zamanlama ve durum yönetimi sağlar.
Karşılaştırma (somut farklar)
| Kriter | cron | systemd timers |
|---|---|---|
| Logların bütünlüğü | Dağıtık olabilir | Journal ile daha sistematik takip |
| Durum/başarısızlık yönetimi | Daha sınırlı | Daha güçlü (exit code, unit ilişkisi) |
| Reload öncesi/sonrası kontrol | Komut içine gömülür | Unit bağımlılıkları ile daha düzenli |
| Sunucu reboot sonrası | Genellikle çalışır ama zamanlama kayabilir | Daha tutarlı şekilde yeniden planlar |
Cron ile net akış (pratik şablon)
- Düzenli aralık belirleyin (ör. günde 1 kez kontrol).
- Yenileme komutu “renew” yapmalı; “get-new” gibi fazla emisyon yapmamalıdır.
- Başarısızlıkta log üretmelidir.
- Yenileme sonrası reload olmalıdır.
Cron’un asıl riski: Komutun “başarısız ama sessiz” kalmasıdır. Bu nedenle cron satırını oluştururken hata çıkışlarını loga yönlendirin.
systemd ile net akış (daha sağlam)
systemd tarafında iki ünite yaklaşımı yaygındır: - timer: belirli aralıkla çalıştırır - service: yenileme komutunu çalıştırır
systemd ile en önemli kazanım: “servis başarısız mı?” sorusunu doğrudan birim durumu üzerinden yanıtlayabilmenizdir.
Akış adımı: staging→prod uyumlu doğrulama
- Staging testlerinde timer/service dosyasında staging hedefini doğrulayın.
- Prod’a geçerken yalnızca environment/arg değiştirin; servis adımlarını aynı tutun.
“Doğrulama” denetimi: yalnızca komutun çalıştığını değil, sonucu da kontrol edin
Aşağıdaki iki kontrol otomasyon kalitesini belirler: 1. Sertifika dosyalarının modification time değişti mi? (yeni dönem aktif oldu mu) 2. Web sunucusu gerçekten yeni sertifikayı çekiyor mu?
Web sunucusu reload doğrulaması
- nginx: konfigurasyon yeniden yüklenince sertifika zinciri güncellenir.
- apache: graceful reload ile kesinti azaltılır.
Bu doğrulamayı manuel yapmayı değil, otomasyona “reload sonrası kontrol” eklemeyi hedefleyin.
6) Kesintisiz yenileme (zero-downtime) için servis reload tasarımı
Sertifika yenilendiğinde web sunucusunu reload etmezseniz risk şudur: Yenileme başarılı olsa bile kullanıcılar eski sertifikayı görmeye devam eder.
Net strateji
- Yenileme komutu bittiğinde yalnızca “başarı” durumunda reload çalıştırın.
- Reload komutunu restart değil, tercihen reload/graceful modunda kullanın.
- Birden fazla site (vhost) varsa reload bir kez yapılmalı; her domain için ayrı reload tetiklenmemelidir.
Çoklu domain ve wildcard senaryosunda kontrol listesi
- Aynı sunucuda birden fazla alan adı varsa: her domain için sertifika dosyaları doğru dizinde mi?
- Wildcard kullanıyorsanız: wildcard içeren doğrulama yöntemi (DNS-01) otomasyonda tam otomatik mi?
7) Failure (başarısızlık) yönetimi: ne zaman uyarı alacaksınız?
Otomasyonun başarısız olması kaçınılmazdır; kritik olan bunun fark edilme hızıdır. Bu rehberde hedef, “ertesi gün tarayıcı uyarısı gelmeden” önce fark etmektir.
Net alarm/izleme önerileri
- systemd için: unit exit code ve journal loglarına günlük bakın.
- cron için: stdout/stderr log dosyasında “renewal succeeded” / “failed” benzeri anahtar kelimeleri arayın.
Minimum izleme hedefi
- Yenileme denemesi her gün çalışmalı
- “Başarılı” logu görülmeli
- En azından haftada bir kez sertifikanın geçerlilik tarihini (notAfter) kontrol edin
Staging’de kalma hatası (prod’a hiç geçmemek)
En çok atlanan hata: staging anahtarının prod’a alınmaması. Bunu engellemek için şu kuralı uygulayın: - Prod’a geçtiğiniz gün bir kez “prod endpoint ile issuance” tamamlanmalı. - Yenilenen sertifikanın seri/çıkarım bilgileri (issuer) üzerinden staging olmadığını doğrulayın.
8) Uygulanabilir kontrol listesi (staging→prod ve cron/systemd)
Son bölümde hepsini tek bir akışa indiriyoruz.
Staging kontrol listesi
- [ ] Doğrulama yöntemi (HTTP-01/DNS-01) doğru
- [ ] Yenileme denemesi (dry-run) logları üretildi
- [ ] Sertifika dosyaları oluştu
- [ ] Servis reload tetiklendi
- [ ] Hata senaryosunda log üretimi var
Prod kontrol listesi
- [ ] Staging parametresi kapalı
- [ ] İlk prod issuance başarılı
- [ ] Timer/cron her gün çalışıyor
- [ ] Reload başarısı doğrulanıyor
- [ ] Basit izleme (günlük log kontrolü + geçerlilik tarihi) kurulu
Son aksiyon (NetKıyas tavrıyla karar kolaylaştırma)
Bu rehberi temel alarak şu sırayı uygulayın: Önce staging’de doğrulama ve renew+reload akışını log ve sertifika dosyası değişimi üzerinden teyit edin; ardından prod’a geçip timer/cron doğrulamasını aynı mantıkla sürdürün. Eğer doğrulama yöntemi belirsizse mevcut altyapınıza göre HTTP-01/DNS-01 seçimini netleştirin. Bu planı takip eden sistemlerde sertifika yenileme, son dakika sürprizinden çıkıp ölçülebilir ve yönetilebilir bir operasyon haline gelir.
Hosting karşılaştırması yapmaya hazır mısın?
100+ firmanın fiyatlarını tek tıkla karşılaştır, en uygun paketi bul.
Hosting Karşılaştır →İlgili Yazılar
Küçük Siteler için Disaster Recovery Planı: Net Rehber
Küçük siteler için disaster recovery planı: hedefler (RPO/RTO), yedekleme stratejisi, izleme, test ve pratik kurtarma adımları.
Web sitesi hack’lendi: İlk 10 dakikada yapılacak net adımlar
Web sitesi hack’lendiğinde ilk 10 dakikada erişimi kes, kanıtları sakla, zararı durdur ve temizleme planını başlat. Adım adım kontrol listesi.
Yerli Bulut Sağlayıcı Seçimi: Kriterler ve Net Kontrol Listesi
Yerli bulut sağlayıcı seçerken dikkate almanız gereken net kriterler: performans, SLA, veri konumu, yedekleme, erişim, maliyet ve güvenlik kontrolleri.
VDS Hosting Nedir? Yeni Başlayanlar İçin Tam Rehber
VDS hosting nedir, VPS ile farkı ne, performans ve maliyet nasıl değerlendirilir? Yeni başlayanlar için net kurulum ve seçim rehberi.