- Katılım
- 17 Eki 2024
- Mesajlar
- 2
- Tepkime puanı
- 1
- Puanları
- 1
Let’s Encrypt’te Hatalı Otomatik Yükleme: 521 Hatasına Yol Açtı – Nasıl Önlenir?
Merhaba webmaster arkadaşlar,
Geçtiğimiz hafta benim sitemde 521 Cloudflare hatası baş göstermeye başladı. İlk bakışta “sunucu kapalıdır” gibi düşündüm ama aslında sabırla **Let’s Encrypt** sertifikasının otomatik yenileme sürecinde yaşanan bir dosya izin sorunu bu hataya sebep oldu. Bugün bu deneyimi sizinle paylaşarak, aynı konuda karşılaşabileceğiniz hatayı önlemenize yardımcı olmayı hedefliyorum.
[LIST TYPE=1]
[*] **Sorunun Kaynağı**
- Let’s Encrypt (Certbot) otomatik yenileme sırasında sertifika dosyalarını `/etc/letsencrypt/live/domain/` dizinine yerleştiriyor. Ancak, bazı sunucularda `/etc/letsencrypt/live/` dizininin sahipliği `root` ve izinleri `755` oluyor.
- Bu durumda, `nginx` veya `apache` gibi web sunucusu, `ssl_certificate` ve `ssl_certificate_key` dosyalarına `www-data` gibi web sunucusu kullanıcı adıyla ulaşamıyor. Herkesini “*kime ait olmadığını*” bilemiyorsa sunucu, TLS el sıkışmasına devam etmiyor ve Cloudflare’ı 521 “Origin Unreachable” hatasıyla karşılıyor.
[*] **Nasıl Tanımlarsınız?**
- Cloudflare kontrol panelinde 521 hatası görürsünüz; geliştirici konsolunda ise “SSL_ERROR_BAD_CERT_DOMAIN” gibi hata mesajları.
- Yerel denekte `openssl s_client -connect domain.com:443 -servername domain.com` ile sertifika zincirini kontrol edebilirsiniz; “path to key file” hatası alırsanız bu bir izin sorunudur.
[*] **Çözüm Adımları**
1. **İzinleri Düzeltme**
```bash
sudo chown -R www-data:www-data /etc/letsencrypt/live/domain/
sudo chmod -R 750 /etc/letsencrypt/live/domain/
```
(Oto yenileme sonrası `deploy-hook` içinde bu adımları da ekleyebilirsiniz.)
2. **Autorenew Script’ini Test Etme**
```bash
sudo certbot renew --dry-run
```
Bu komut, test ortamınızda tüm izin ve yol hatalarını gösterir.
3. **Web Sunucusu Yapılandırmasını Gözden Geçirme**
```nginx
ssl_certificate /etc/letsencrypt/live/domain/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/domain/privkey.pem;
```
Dosya yollarının doğru olduğundan ve `nginx`’in bu dosyalara okuma yetkisi olduğundan emin olun.
4. **Cloudflare SSL/TLS Ayarlarını Kontrol Etme**
* “Flexible” yerine “Full” veya “Strict” modda olmalı. Hata devam ederse, “Full (Strict)” yı tercih edin.
5. **Logları İzleyin**
* `/var/log/letsencrypt/` ve web sunucusunun error loglarını düzenli olarak kontrol edin. Yanlış dosya yolu hatası genellikle burada görünür.
[*] **Heat Map** – 521 Hatası vs. **Let's Schedule** - Eğer sertifika girişimlerinizi gerçek zamanlı izleyen bir `cron` job’a sahipseniz, otomatik doğrulama sırasında `mailx` ile e-posta alabilirsiniz.
[/LIST]
### Sonuç
Küçük bir `chmod` hatası bile HTTPS el sıkışmasını bozabilir. Bu yüzden, `certbot` ile otomatik yenileme yapıyorsanız, **deploy‑hook** içinde dosya izinlerini yenilemek kritik öneme sahiptir. Sunucu loglarınızı ve Cloudflare kontrol panelini periyodik olarak gözden geçirin; böylece 521 hatalarını *yıldızdan* önler ve ziyaretçilerin sitenize güvenini korursunuz.
Sorularınız varsa lütfen paylaşın, birlikte çözüm bulalım!







