Let’s Encrypt sertifikaları doksan günlüğüne verir ve otomatik olarak yeniler; bu yüzden insanlar kurduktan bir hafta sonra onları düşünmeyi bırakır. Sorun, otomatik yenilemenin sessizce bozulmasıdır: hataları kimse görmez ve üç ay sonra site ziyaretçilerini bir tarayıcı uyarısıyla karşılar. 2025’ten bu yana Let’s Encrypt süre dolumu bildirim e-postaları göndermeyi bıraktı, yani son dış hatırlatma da ortadan kalktı.
Aşağıda yenilemenin çalışmayı bırakma nedenleri, sıklık sırasına göre azalan biçimde.
1. Sertifika yenilendi, servis onu bir daha okumadı
En sık görüleni. certbot renew çalıştı, yeni dosya diskte, nginx ya da Apache ise eskisini bellekte tutuyor — ve yapılandırma yeniden yüklenene kadar ziyaretçilere onu sunuyor. Biçimsel olarak her şey yolunda; gerçekte sitenin süresi dolmuş bir sertifikası var.
Çare, başarılı bir yenilemeden sonra çalışan bir kancadır:
sudo certbot renew --deploy-hook "systemctl reload nginx"
Bu bir kez yenileme dosyasına yazılır (/etc/letsencrypt/renewal/example.com.conf, [renewalparams] bölümü, renew_hook satırı) ve o andan sonra kendiliğinden çalışır.
2. Web sunucusu değişti, doğrulama değişmedi
HTTP-01 doğrulaması, /.well-known/acme-challenge/ içinden bir dosyanın düz HTTP üzerinden sunulmasını ister. Genellikle şöyle bozulur:
- yapılandırmaya koşulsuz bir HTTP’den HTTPS’e yönlendirme eklendi — doğrulama yönlendirmeyi izler ve başarısız olur;
deny allile birlocation ~ /\.kuralı belirdi ve içinde nokta geçen bütün dizinleri,.well-knowndahil, kapattı;- site kökü taşındı, certbot ayarları ise eski
--webroot-pathdeğerini korudu; - ülke engellemesi ya da temel kimlik doğrulaması açıldı ve herkesle birlikte doğrulama sunucusunu da yakaladı.
Yapılandırmadaki doğru sıra: önce /.well-known/acme-challenge/ için ayrı bir location, ancak ondan sonra genel yönlendirme.
3. Zamanlayıcı kapalı
Yenileme bir systemd zamanlayıcısından ya da bir cron görevinden çalışır ve ikisi de hata ayıklarken yanlışlıkla kapatılabilir ya da sunucu taşınırken kaybolabilir.
systemctl list-timers | grep certbot
sudo certbot renew --dry-run
İkinci komut, kotanızı harcamadan test kipinde eksiksiz bir yenileme döngüsü yürütür. «Bir ay sonra bu yenilenecek mi» sorusuna sonradan değil, önceden yanıt veren tek kontrol odur.
4. Bir alan adı artık buraya işaret etmiyor
Sertifika beş alan adını kapsıyor, biri başka bir sunucuya taşındı, DNS değişti. O alan adı için doğrulama geçmemeye başlar ve certbot sertifikanın tamamını yenilemez — çalışan dört alan adı dahil. Fazla alan adları, iletiyle birlikte göz ardı edilmemeli, sertifikadan çıkarılmalıdır.
5. Hız sınırlarına takıldınız
Let’s Encrypt, alan adı başına haftalık sertifika sayısını sınırlar. Bu normalde hata ayıklarken oluşan «olmadı, bir daha deneyeyim» döngüsünün sonucudur. Denemeler için bir hazırlık sunucusu vardır (--dry-run ya da --test-cert) ve o, sınır tükendikten sonra değil, önce kullanılmalıdır.
Saklananı değil, sunulanı kontrol edin
Diskteki dosyalara dayanan her kontrolün bir kusuru vardır: dosya taze olabilir, ziyaretçi ise eski sertifikayı alır. İstemci tarafından bakın:
echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null \
| openssl x509 -noout -dates -subject -issuer
-servername seçeneği zorunludur: o olmadan, birkaç siteli bir sunucuda kastettiğiniz sertifikayı değil, ilk gelen sanal konağın sertifikasını alırsınız. Çıktıda notAfter gerçek süre dolum tarihidir.
Hazır oradayken zinciri de kontrol edin:
echo | openssl s_client -connect example.com:443 -servername example.com -showcerts 2>/dev/null | grep -c 'BEGIN CERTIFICATE'
Yalnızca bir sertifika varsa ara sertifika sunulmuyor demektir. Tarayıcılar bu yapılandırmayı genellikle affeder — zinciri kendileri kurarlar — ama curl, mobil uygulamalar ve Java istemcileri doğrulamada başarısız olur. Bu, klasik «bende düzgün açılıyor, müşteride çalışmıyor» durumudur.
Kaç gün önceden uyarı
Otuz gün makul bir ilk uyarıdır: certbot da yenileme denemelerine başladığında geriye o kadar kalmıştır, dolayısıyla o zamana kadar bir şey olmadıysa mekanizma bozuktur. On dört gün ikinci uyarıdır ve bugün eylem gerektirir. Yedi gün acil durumdur.
Önemli olan, Let’s Encrypt’ten gelmeyenler dahil bütün sertifikaları aynı anda izlemektir: en güvenilir biçimde unutulanlar bir yıllığına satın alınmış olanlardır, çünkü bir yıl içinde herkes hem onları hem de bildirimlerin kimin posta kutusuna gittiğini unutur. Alan adları, tarihler ve kalan günlerin bulunduğu tek bir sayfa bu meseleyi tümüyle kapatır — aşağıdaki demoda olduğu gibi.