Let's Encrypt, kâr amacı gütmeyen bir sertifika otoritesidir ve alan adı doğrulamalı (DV) sertifikaları ücretsiz verir. Sertifikalar kısa ömürlüdür; bu nedenle yenilemenin otomatik çalışması beklenir. Sertifikaların ne olduğu için SSL/TLS nedir makalesine bakın.
Ön koşullar
- Alan adının A (ve kullanıyorsanız AAAA) kaydı sunucunuzun IP adresini göstermeli. Bkz. DNS kayıt türleri.
- 80 ve 443 numaralı portlar internetten erişilebilir olmalı (güvenlik duvarı dahil).
- Alan adı için çalışan bir Nginx sanal host'u olmalı. Bkz. Nginx ile sanal host.
Certbot kurulumu
Certbot'un resmi önerisi snap paketidir; dağıtımınızın deposundaki paket de kullanılabilir. Ubuntu'da depo paketiyle:
sudo apt update
sudo apt install certbot python3-certbot-nginxGüncel kurulum yöntemi için Certbot'un kendi belgelerine bakın; sürümler arasında farklılık olabilir.
Sertifika alma
sudo certbot --nginx -d ornek.com -d www.ornek.comCertbot alan adı sahipliğini doğrular (HTTP-01 sınaması), sertifikayı alır ve Nginx yapılandırmasını düzenler. Sertifika dosyaları /etc/letsencrypt/live/ornek.com/ altında bulunur:
| Dosya | İçerik |
|---|---|
fullchain.pem | Sertifika + ara sertifikalar |
privkey.pem | Özel anahtar, paylaşmayın |
Otomatik yenileme
Paket kurulumu genellikle bir systemd zamanlayıcısı veya cron girdisi ekler. Kontrol edin:
systemctl list-timers | grep certbotYenileme sürecini gerçek sertifikaya dokunmadan sınamak için:
sudo certbot renew --dry-runBu komut hata veriyorsa gerçek yenileme de başarısız olacaktır; sorunu şimdi çözün.
Wildcard sertifika
*.ornek.com için HTTP-01 yeterli değildir; DNS-01 sınaması gerekir, yani doğrulama için DNS'e bir TXT kaydı eklenmelidir. Otomatik yenilemenin çalışması için DNS sağlayıcınızın API'sine uygun bir Certbot eklentisi gerekir.
Sık hatalar
- Timeout during connect / Connection refused: 80. port kapalı ya da alan adı başka bir IP'yi gösteriyor.
- Too many requests: Let's Encrypt, kısa sürede çok sayıda başarısız veya yinelenen istekte hız sınırı uygular. Sınırlar güncel belgelerinde yazılıdır; bekleyip yeniden deneyin.
- Nginx yapılandırması hatalı:
sudo nginx -tile sınayın. - IPv6 AAAA kaydı yanlış: Sunucu IPv6'da dinlemiyorsa doğrulama başarısız olabilir.
Yenileme sonrası
Nginx'in yeni sertifikayı okuması için yeniden yüklenmesi gerekir; Certbot'un Nginx eklentisi bunu genellikle kendisi yapar. Elle gerekirse: sudo systemctl reload nginx.