Blog

Eğitimler, rehberler ve ürün haberleri.

Güvenlik ve Yedek

Sitenize ücretsiz HTTPS sertifikası: Let's Encrypt

2 Kasım 2026 4 dk okuma
Bu yazıyı paylaş

Let's Encrypt, alan adınız için ücretsiz HTTPS sertifikası veren bir sertifika otoritesidir. VPS'inizde bu sertifikayı Certbot ile birkaç komutta ya da Caddy ile hiç komut yazmadan alabilirsiniz, ikisi de yenilemeyi kendiliğinden yapar. İki şart var: alan adı sunucunuzun IP adresine bağlı olmalı ve 80 ile 443 portları dışarıdan açık olmalı.

HTTPS neden gerekli?

HTTPS, tarayıcı ile sunucu arasındaki trafiği şifreler. Giriş formundaki parolayı ya da siparişteki bilgileri ağdaki üçüncü kişiler okuyamaz. Tarayıcılar HTTPS olmayan sitelerde "güvenli değil" uyarısı gösterebilir. Let's Encrypt sertifikası ücretsizdir, bu yüzden HTTPS'i atlamak için bir gerekçe kalmamıştır.

Başlamadan önce

  • Alan adının A kaydı sunucunuzun IP adresini göstermeli. Kontrol için dig +short ornek.com yazın, çıktı sunucunuzun IP adresi olmalı.
  • 80 ve 443 portları açık olmalı, çünkü doğrulama 80 portundan yapılır (HTTP-01). ufw kullanıyorsanız sudo ufw allow 80/tcp ve sudo ufw allow 443/tcp yazın. Sunucunuzun panelinde ayrı bir güvenlik duvarı varsa oradaki kuralları da kontrol edin.
  • Alan adının bir AAAA (IPv6) kaydı varsa o da bu sunucuya gitmeli. Gitmiyorsa kaydı silin.
  • Web sunucunuz çalışıyor ve bu alan adını tanıyor olmalı.

Certbot ile Nginx ya da Apache'de kurulum ve kontrol

Certbot'un resmi yönergesi snap paketini önerir. Sunucuda snapd'nin kurulu olduğundan emin olun (Ubuntu'da genellikle hazırdır) ve apt ile kurulmuş eski bir Certbot varsa kaldırın.

  1. Certbot'u kurun: sudo snap install --classic certbot
  2. Komutu her yerden çalışır yapın: sudo ln -s /snap/bin/certbot /usr/local/bin/certbot
  3. Sertifikayı alıp web sunucusuna kurdurun. Nginx için sudo certbot --nginx, Apache için sudo certbot --apache yazın.
  4. Soruları yanıtlayın: e-posta adresiniz, hangi alan adları için sertifika istediğiniz, HTTP'nin HTTPS'e yönlendirilmesi.
  5. Yenilemeyi deneyin: sudo certbot renew --dry-run

Sertifikayı yalnız almak, ayarı kendiniz yapmak istiyorsanız sudo certbot certonly --nginx yazın. Certbot paketi kendiliğinden bir zamanlayıcı (cron ya da systemd timer) ekler, systemctl list-timers çıktısında görebilirsiniz. sudo certbot certificates sertifikalarınızı ve bitiş tarihlerini listeler. Certbot sertifikanın ömrü sona yaklaşınca yeniler, siz bir şey yapmazsınız. Yenileme yine de bir gün hata verebilir (örneğin bir güvenlik duvarı kuralı yüzünden), bu yüzden arada bir --dry-run deneyin.

Sertifikayı kontrol etmek için önce tarayıcıda adres çubuğundaki kilit simgesine bakın. Bitiş tarihini komutla görmek için şunu yazın:

echo | openssl s_client -connect ornek.com:443 -servername ornek.com 2>/dev/null | openssl x509 -noout -dates

Çıktıdaki notAfter satırı sertifikanın bitiş tarihidir. Certbot'un yönlendirme eklemesini kullanmıyorsanız HTTP'yi HTTPS'e kendiniz yönlendirin. Nginx'te 80 portunu dinleyen sunucu bloğuna return 301 https://$host$request_uri; satırını yazmanız yeter.

Caddy ile hiç komut yazmadan

Caddy kullanıyorsanız ayrıca bir şey kurmanız gerekmez. Caddy, yapılandırmasındaki alan adı için sertifikayı Let's Encrypt ya da ZeroSSL'den kendisi alır, yeniler ve HTTP'yi HTTPS'e yönlendirir. Resmi belgeye göre alan adının A ve AAAA kayıtları sunucuya bağlı, 80 ve 443 portları dışarıdan erişilebilir olmalı ve Caddy'nin veri klasörü kalıcı ve yazılabilir olmalıdır. Caddy'yi Docker'da çalıştırıyorsanız bu klasörü bir volume'a bağlayın. Aksi halde konteyner silinince sertifikalar da gider ve yeniden istemek oran sınırına takılabilir.

Joker (wildcard) sertifika

Bütün alt alan adlarını tek sertifikayla kapsayan joker sertifika (*.ornek.com) yalnız DNS-01 doğrulamasıyla alınabilir. Bu doğrulama 80 portunu kullanmaz, alan adınızın DNS'ine bir TXT kaydı yazılmasını ister. Bunun için DNS sağlayıcınızın bir API'si olmalı ve API anahtarını sunucuda saklarsınız. Let's Encrypt belgesi bu anahtarların web sunucusunda saklanmasını riskli sayar. Joker sertifikaya ihtiyacınız yoksa HTTP-01 ile alan adlarını tek tek almak daha basittir ve DNS anahtarı saklamayı gerektirmez.

Sık görülen hatalar

BelirtiOlası nedenÇözüm
Doğrulama başarısız, alan adı bulunamıyorA kaydı yanlış IP'ye gidiyor ya da henüz yayılmadıdig +short ornek.com ile IP'yi kontrol edin, bekleyin
Zaman aşımı80 portu kapalıufw ve varsa panel güvenlik duvarında 80'i açın
Doğrulama bazen geçiyor, bazen kalıyorAAAA kaydı başka bir sunucuya gidiyorAAAA kaydını düzeltin ya da silin
Oran sınırı hatasıÇok sayıda denemeDenemelerde --dry-run kullanın, sınırlar için resmi sayfaya bakın
Yenileme çalışmıyorZamanlayıcı yok ya da web sunucusu 80'i engelliyorsudo certbot renew --dry-run hatayı gösterir

Hata mesajı genellikle hangi doğrulamanın başarısız olduğunu ve Let's Encrypt'in sunucunuza hangi adresten ulaşmaya çalıştığını yazar. Mesajı olduğu gibi okuyun, çoğu zaman cevap oradadır.

Let's Encrypt'in resmi sayfasına göre aynı alan adı kümesi için haftada 5 sertifika, aynı alan adı için saatte 5 başarısız doğrulama sınırı vardır. Bu yüzden ayarı denerken --dry-run kullanın: yenileme denemesini deneme (staging) ortamında yapar ve gerçek sınırınızı harcamaz.

Seturack hazır uygulamalarında

Hazır uygulamalar (WordPress, Nextcloud ve diğerleri) IP adresinizden türetilen bir sslip.io adresiyle HTTPS üzerinden açılır, alan adı gerekmez. Kendi alan adınızı bağladığınızda sertifikayı yine Caddy alır, ek bir şey kurmazsınız. Alan adını Caddy'ye ve uygulamaya tanıtma adımları bu yardım makalesinde anlatılıyor.

Yorumlar0

Henüz Yorum Yok

İlk düşüncenizi paylaşan siz olun.

Tartışmaya Katıl

Yorum bırakmak için lütfen giriş yapın veya kaydolun.

Hiçbir Yazıyı Kaçırmayın

En yeni eğitim, rehber ve ürün haberlerini gelen kutunuzda alın.

Bülten aboneliğiniz alındı.