Ücretsiz SSL: Let's Encrypt kurulumu (certbot, kontrol paneli ve Cloudflare ile)
Let's Encrypt ile ücretsiz SSL kurulumu adım adım: certbot ile sertifika alma ve otomatik yenileme, kontrol panelinde etkinleştirme, Cloudflare arkasında doğru SSL modunu seçme. Şubat 2027'de 64 güne inecek sertifika süresine hazırlık ve süre dolmasını izleme de bu rehberde.
Batuhan ÇelikelGüncellendi: 9 dk okuma
Let's Encrypt nedir, neden ücretsiz?
Let's Encrypt, kâr amacı gütmeyen Internet Security Research Group (ISRG) tarafından işletilen, ücretsiz ve otomatik çalışan bir sertifika otoritesidir. Web sitenizi HTTPS ile sunmak için gereken SSL/TLS sertifikasını hiçbir ücret ödemeden alır, yeniler ve yönetirsiniz. Kuruluşun amacı HTTPS kullanımını yaygınlaştırmak olduğu için sertifikalar ücretsizdir. Destekçi ve sponsorların güncel listesini Let's Encrypt resmi sitesinde görebilirsiniz.
Ayrı bir IP adresine ihtiyacınız yoktur: aynı IP adresi üzerinde barındırdığınız birden fazla sitenin her biri kendi Let's Encrypt sertifikasını kullanabilir.
"Ücretsiz" ile "ömür boyu tek seferlik" aynı şey değildir. Let's Encrypt sertifikaları kısa ömürlüdür ve düzenli olarak yenilenmesi gerekir. Bu rehberde üç kurulum yolunu ele alıyoruz:
- Kendi yönettiğiniz Linux sunucuda certbot ile kurulum ve otomatik yenileme
- Kontrol panelinde (CloudPanel, Plesk, cPanel gibi) tek tıkla etkinleştirme
- Cloudflare arkasındaki bir sitede Let's Encrypt ve doğru SSL modunun seçimi
Sertifika süresi değişiyor: 2027 ve 2028 takvimi
Kurulumdan önce bilmeniz gereken en önemli değişiklik, sertifika ömrünün kısalmasıdır. Uzun süredir varsayılan süre 90 gündü. Let's Encrypt'in Ekim 2026'da yaptığı duyuruya göre:
- 10 Şubat 2027 itibarıyla düzenlenen ya da yenilenen sertifikalar varsayılan olarak 64 gün geçerli olacak. Daha kısa bir süre (45 ya da 6 gün) seçerseniz seçtiğiniz süre uygulanır.
- Son 90 günlük sertifikaların 11 Mayıs 2027 civarında sona ermesi bekleniyor. Elinizdeki geçerli sertifikalar bu değişiklik yüzünden iptal edilmeyecek.
- Varsayılan sürenin 2028'de 45 güne inmesi bekleniyor.
- Test (staging) ortamı, deneme yapabilmeniz için 14 Ekim 2026'dan beri 64 günlük sertifika veriyor.
- Alan adı doğrulamasının yeniden kullanılabildiği süre 30 günden 10 güne kısalıyor, 2028'de ise yedi saate düşecek. Oran sınırları, ACME uç noktaları ve sertifika zincirleri bu değişiklikten etkilenmiyor.
Ayrıca Ocak 2026'dan bu yana 160 saat (altı günden biraz fazla) geçerli kısa ömürlü sertifikalar ve IPv4/IPv6 adresleri için IP adresi sertifikaları genel kullanımda. Bunlar ACME istemcisinde shortlived profili seçilerek isteğe bağlı alınıyor. IP adresleri sık el değiştirdiği için IP sertifikaları yalnız kısa ömürlü olarak veriliyor.
Bunun pratik anlamı şu: yenilemeyi elle yapmak artık seçenek değil. Otomatik yenileme kurulu ve test edilmiş olmalı.
Certbot ile Let's Encrypt kurulumu
Bu bölüm, Nginx ya da Apache çalışan ve root erişiminiz olan bir Linux sunucu içindir; örneğin bir bulut sunucu. Komutlar Ubuntu/Debian içindir, RHEL tabanlı dağıtımlarda paket yöneticisi olarak dnf kullanılır. Örneklerde alan adı olarak example.com geçiyor; kendi alan adınızla değiştirin.
Adım 1: Ön koşulları kontrol edin
- Alan adınızın A (ve varsa AAAA) kaydı sunucunuzun IP adresini göstermeli.
- 80 ve 443 numaralı portlar dışarıdan erişilebilir olmalı. HTTP-01 doğrulaması 80 numaralı port üzerinden yapılır.
- Web sunucusunda alan adı için bir site (server block ya da VirtualHost) tanımlı olmalı.
DNS kaydını kontrol etmek için:
dig +short example.com A
dig +short www.example.com A
Çıktıda sunucunuzun IP adresi (örneğin 192.0.2.10) görünmüyorsa DNS yayılmasını bekleyin; doğrulama aksi halde başarısız olur.
Adım 2: Güvenlik duvarında portları açın
Kendinizi kilitlemeyin:
ufw enablekomutunu çalıştırmadan önce mutlaka SSH erişimine izin veren kuralı ekleyin. SSH izni olmadan güvenlik duvarını etkinleştirirseniz mevcut bağlantınız kopar ve sunucuya uzaktan erişimi tamamen kaybedersiniz; geri dönmek için sağlayıcı panelindeki konsola ihtiyaç duyarsınız. SSH'ı 22 dışında bir portta çalıştırıyorsanızOpenSSHyerine o portu (örneğin2222/tcp) yazın ve kuralın listede göründüğünü kontrol etmeden etkinleştirmeyin.
Doğru sıra: önce SSH, sonra web portları, en son etkinleştirme.
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw show added
sudo ufw enable
sudo ufw status
ufw show added çıktısında SSH kuralını gördükten sonra ufw enable çalıştırın. Etkinleştirdikten sonra mevcut oturumu kapatmadan ikinci bir terminalden yeni bir SSH bağlantısı açarak erişimin sürdüğünü doğrulayın.
Sağlayıcınızın panelinde ayrıca bir ağ güvenlik duvarı varsa aynı portları orada da açın. Orada da aynı kural geçerlidir: varsayılan politikayı "engelle" yapmadan önce SSH (Windows sunucuda RDP) erişimine izin veren kuralı ekleyin, yoksa sunucuya erişim kaybedilir.
Adım 3: Certbot'u kurun ve sertifikayı alın
Nginx için:
sudo apt update
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d example.com -d www.example.com
Apache için eklenti paketi python3-certbot-apache, komut ise sudo certbot --apache -d example.com -d www.example.com olur. Certbot alan adını doğrular, sertifikayı /etc/letsencrypt/live/example.com/ altına yazar ve web sunucusu yapılandırmasını HTTPS için günceller. Sorulduğunda HTTP isteklerini HTTPS'e yönlendirme seçeneğini işaretleyin.
Kontrol noktası:
sudo certbot certificates
curl -I https://example.com
İlk komut sertifikanın kapsadığı alan adlarını ve bitiş tarihini, ikincisi sitenin HTTPS üzerinden yanıt verdiğini gösterir.
Adım 4: Otomatik yenilemeyi doğrulayın
Paketle kurulan certbot, yenileme için genellikle bir systemd zamanlayıcısı ya da cron işi ekler. Adı dağıtıma ve kurulum yöntemine göre değişir:
systemctl list-timers | grep -i certbot
ls /etc/cron.d/ | grep -i certbot
Ardından yenilemeyi gerçek sertifikaya dokunmadan test edin:
sudo certbot renew --dry-run
Yenilemeden sonra web sunucusunun yeni sertifikayı yüklemesi için bir dağıtım kancası tanımlayın:
sudo certbot renew --deploy-hook "systemctl reload nginx"
Adım 5: Sabit gün sayılı betikleri ömrün üçte ikisine göre düzeltin
Let's Encrypt, yenilemeyi "bitişe X gün kala" şeklinde sabit ayarlayan betiklerin, sertifika ömrünün yaklaşık üçte ikisi dolduğunda yenileyecek şekilde güncellenmesini öneriyor. 64 günlük bir sertifikada sabit bir eşik ya hiç tetiklenmeyebilir ya da gereğinden geç kalabilir. Kendi cron işlerinizde ve betiklerinizde 83, 80 ya da 60 gibi değerleri arayın:
sudo grep -rnE '\b(83|80|60)\b' /etc/cron* /etc/systemd/system 2>/dev/null | grep -iE 'cert|ssl|acme'
sudo grep -n renew_before_expiry /etc/letsencrypt/renewal/*.conf
İkinci komut, certbot yenileme dosyalarına elle bir eşik yazılıp yazılmadığını gösterir. Böyle bir satır varsa kaldırmayı ya da yeni sürelere göre düzeltmeyi değerlendirin.
En sağlam çözüm ACME Renewal Info (ARI) desteğidir. İstemciniz ARI destekliyorsa, ne zaman yenileme yapılacağını Let's Encrypt istemciye bildirir ve ek bir ayar gerekmez. Kullandığınız istemcinin ve sürümünün ARI desteğini kendi belgelerinden kontrol edin.
Kontrol panelinde Let's Encrypt'i etkinleştirme
Bir hosting kontrol paneli kullanıyorsanız certbot ile uğraşmanız gerekmez; yaygın panellerin çoğunda Let's Encrypt desteği yerleşik gelir ya da bir eklentiyle eklenir. Genel akış şöyledir:
- Alan adının DNS kaydının sunucuyu gösterdiğini doğrulayın.
- Panelde ilgili sitenin ayarlarına girin ve SSL/TLS bölümünü açın.
- Let's Encrypt sertifikası oluşturma seçeneğini seçin,
wwwdahil kapsanacak alan adlarını işaretleyin. - HTTP'den HTTPS'e yönlendirmeyi etkinleştirin.
- Panelin otomatik yenileme ayarının açık olduğunu kontrol edin.
CloudPanel: Sitenin yönetim sayfasındaki SSL/TLS sekmesinden yeni bir Let's Encrypt sertifikası oluşturulur. CloudPanel kurulu olarak teslim edilen web sitesi sunucusu kullanıyorsanız her yeni site için bu adımı tekrarlamanız yeterlidir.
Plesk ve cPanel: Plesk'te Let's Encrypt eklentisi alan adının SSL/TLS sertifikaları ekranında görünür; cPanel'de otomatik SSL özelliği sunucu yöneticisi tarafından açıldığında sertifikalar kendiliğinden düzenlenir. Seçeneği göremiyorsanız eklentinin kurulu olup olmadığını sunucu yöneticinize sorun.
Panel kullanırken de kontrol noktası aynıdır: sertifikanın bitiş tarihini tarayıcıdan ya da aşağıdaki izleme bölümündeki komutla kontrol edin ve panelin yenileme günlüklerinde hata olup olmadığına bakın. Panel güncellemelerini de ihmal etmeyin; 64 günlük sertifikalara uyum çoğu zaman panelin ya da içindeki ACME istemcisinin güncel olmasına bağlıdır.
Cloudflare arkasında Let's Encrypt: hangi SSL modu?
Siteniz Cloudflare üzerinden yayınlanıyorsa (turuncu bulut açık), iki ayrı bağlantı vardır: ziyaretçi ile Cloudflare arası ve Cloudflare ile sizin sunucunuz (kaynak sunucu) arası. Cloudflare'in SSL/TLS ayarındaki şifreleme modu ikinci bağlantının nasıl kurulacağını belirler. Ayrıntılar Cloudflare belgelerinde yer alıyor; özetle:
| Mod | Cloudflare ile sunucu arası | Ne zaman? |
|---|---|---|
| Flexible | Şifrelenmez | Kaçının; ziyaretçi kilidi görse de trafiğin yarısı açıktadır |
| Full | Şifrelenir, sertifika doğrulanmaz | Geçiş aşamasında |
| Full (strict) | Şifrelenir, sertifika doğrulanır | Sunucuda geçerli Let's Encrypt sertifikası varsa önerilen |
Cloudflare, kaynak sunucuya yönelik kötü niyetli bağlantıları önlemek için Full ya da Full (strict) kullanılmasını önemle öneriyor. Varsayılan Automatic SSL/TLS seçeneği, sunucunuzun desteklediği en güvenli modu seçer ve ayarı düşürmez.
Full (strict) için adımlar
- Kaynak sunucuya yukarıdaki certbot ya da panel yöntemiyle Let's Encrypt sertifikası kurun.
- Sertifikanın ziyaretçilerin istediği alan adlarını (
example.com,www.example.com) kapsadığını doğrulayın. Full (strict) modunda sertifikanın süresi dolmamış olmalı, herkesçe güvenilen bir otorite ya da Cloudflare Origin CA tarafından verilmiş olmalı ve CN veya SAN alanı istenen alan adıyla eşleşmeli. - Cloudflare panelinde SSL/TLS modunu Full (strict) yapın.
- Siteyi açıp 526 gibi sertifika hatası alıp almadığınızı kontrol edin.
Doğrulama yöntemi: HTTP-01 mi DNS-01 mi?
Proxy açıkken HTTP-01 doğrulaması genellikle çalışır, çünkü Cloudflare /.well-known/acme-challenge/ isteklerini sunucunuza iletir. Sorun yaşıyorsanız ya da sunucunun 80 numaralı portunu kapalı tutmak istiyorsanız DNS-01 doğrulamasını kullanın. Certbot için Cloudflare DNS eklentisi, yalnız ilgili bölgede DNS düzenleme yetkisi olan bir API belirteciyle çalışır:
sudo apt install python3-certbot-dns-cloudflare
sudo install -m 600 /dev/null /root/.cloudflare.ini
# Dosyaya şu satırı ekleyin: dns_cloudflare_api_token = BELIRTECINIZ
sudo certbot certonly --dns-cloudflare \
--dns-cloudflare-credentials /root/.cloudflare.ini \
-d example.com -d www.example.com
certonly web sunucusu yapılandırmasına dokunmaz; sertifika yolunu Nginx ya da Apache ayarınıza kendiniz yazmanız gerekir.
Süre dolmasını izleyin: uyarı e-postaları artık gelmiyor
Let's Encrypt, 4 Haziran 2025 itibarıyla süre dolma uyarı e-postalarını tamamen durdurdu ve yeni e-posta adreslerini de saklamıyor. Yani yenileme sessizce başarısız olursa haberi ziyaretçilerinizin tarayıcı uyarısından alırsınız. Bunu önlemek için bitiş tarihini kendiniz izleyin:
echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null \
| openssl x509 -noout -enddate
Bu komutu bir betikle düzenli çalıştırıp kalan gün sayısı belirli bir eşiğin altına düştüğünde uyarı gönderebilir ya da HTTPS ve sertifika kontrolü yapan bir sunucu izleme hizmeti kullanabilirsiniz. Sertifika ömrü kısaldıkça eşiği de buna göre ayarlayın; örneğin 64 günlük bir sertifikada kalan süre ömrün üçte birinin altına indiyse yenileme gecikmiş demektir.
Sık yapılan hatalar
- SSH izni vermeden güvenlik duvarını açmak:
ufw enableöncesi SSH kuralı eklenmezse sunucuya erişim kaybedilir. Kuralı ekleyin,ufw show addedile görün, sonra etkinleştirin. - Cloudflare'de Flexible modla sunucuda HTTPS yönlendirmesi: Cloudflare sunucuya HTTP ile gelir, sunucu HTTPS'e yönlendirir, döngü oluşur ve "çok fazla yönlendirme" hatası alınır. Çözüm Full (strict) moduna geçmektir.
- 80 numaralı portu kapatmak: HTTP-01 doğrulaması başarısız olur. Portu açık tutun ya da DNS-01 kullanın.
- Yenilemeyi test etmemek:
certbot renew --dry-runçıktısını kurulumdan sonra ve her büyük yapılandırma değişikliğinden sonra kontrol edin. - Web sunucusunu yeniden yüklememek: Sertifika yenilenir ama Nginx eskisini sunmaya devam eder. Dağıtım kancası ekleyin.
- Sabit gün eşikleri: 90 günlük sertifikaya göre yazılmış betikler 64 ve 45 günlük sertifikalarda sorun çıkarır.
wwwalt alan adını unutmak: Sertifika yalnızexample.comiçin alındıysawww.example.comadresinde hata görülür.- Test sırasında oran sınırına takılmak: Denemeleri staging ortamında yapın; certbot'ta
--dry-runya da--test-certbunu sağlar.
Sık sorulan sorular
Let's Encrypt sertifikası gerçekten ücretsiz mi?
Evet, Let's Encrypt sertifikaları ücretsizdir ve aynı IP adresindeki birden fazla site için ayrı ayrı alınabilir. Ücretsiz olması "bir kez kur, unut" anlamına gelmez; sertifikalar kısa ömürlü olduğu için otomatik yenilemenin çalıştığından emin olmanız gerekir.
Let's Encrypt sertifikası kaç gün geçerli?
Şu anda varsayılan süre 90 gündür. 10 Şubat 2027'den itibaren düzenlenen ve yenilenen sertifikalar varsayılan olarak 64 gün geçerli olacak, 2028'de ise varsayılanın 45 güne inmesi bekleniyor. İsteğe bağlı olarak yaklaşık altı günlük kısa ömürlü sertifika da alınabiliyor.
Cloudflare kullanıyorsam sunucuya ayrıca SSL kurmam gerekir mi?
Evet, önerilen budur. Sunucuda sertifika olmadan yalnız Flexible mod kullanılabilir ve bu modda Cloudflare ile sunucunuz arasındaki trafik şifrelenmez. Sunucuya Let's Encrypt sertifikası kurup Full (strict) modunu seçtiğinizde bağlantının iki tarafı da şifreli ve doğrulanmış olur.
IP adresi için Let's Encrypt sertifikası alınabilir mi?
Evet, Let's Encrypt artık IPv4 ve IPv6 adresleri için de sertifika veriyor. Bu sertifikalar zorunlu olarak kısa ömürlüdür (160 saat) ve ACME istemcisinde shortlived profili seçilerek alınır, bu yüzden otomatik yenileme şarttır.
Süre dolmadan önce Let's Encrypt'ten e-posta gelir mi?
Hayır. Let's Encrypt, 4 Haziran 2025'ten bu yana süre dolma uyarısı göndermiyor. Bitiş tarihini openssl ile kontrol eden bir betik ya da sertifika kontrolü yapan bir izleme hizmetiyle kendiniz takip etmelisiniz.
Yazar
Kurucu, sunucu.com.tr · Bulut altyapısı ve yapay zeka otomasyonları
sunucu.com.tr ve Sunucu UK'in kurucusu. Bulut altyapısı, sanallaştırma ve sunucu yönetimi üzerine çalışıyor; şirketlerin iş yazılımlarını, web sitelerini ve yapay zeka iş yüklerini güvenli sunuculara taşıyor. Blogdaki rehberler sahada karşılaşılan kurulum, güvenlik ve taşıma işlerinden derlenir; yazılar yapay zeka desteğiyle hazırlanır ve kaynaklarla doğrulanır.