HTTPS artık tarayıcıların "güvenli değil" uyarısından kaçınmak için bir tercih değil, zorunluluk. Let's Encrypt'in ücretsiz ve otomatik sertifikaları sayesinde küçük bir blog da, yüksek trafikli bir e-ticaret sitesi de aynı kriptografik güvene kavuşabiliyor. Aşağıda farklı senaryolar için kurulum adımlarını, sık yapılan hataları ve yenileme mantığını uçtan uca ele alıyoruz.

Let's Encrypt Nasıl Çalışır?

Let's Encrypt, ISRG (Internet Security Research Group) tarafından işletilen, ACME (Automatic Certificate Management Environment) protokolü üzerinden çalışan bir sertifika otoritesidir. Süreç kabaca şöyle ilerler: istemci, sunucuda barındırdığınız alan adının gerçekten sizin kontrolünüzde olduğunu kanıtlar (domain validation), CA bunu doğrular ve genellikle 90 gün geçerli bir sertifika imzalar. Kısa ömür, otomasyonu teşvik etmek için bilinçli bir tercihtir.

Doğrulama iki temel yöntemle yapılır:

  • HTTP-01: /.well-known/acme-challenge/ altına bırakılan bir dosyanın 80 portundan okunmasıyla doğrulama yapılır. En yaygın yöntemdir.
  • DNS-01: Alan adınıza geçici bir _acme-challenge TXT kaydı eklenir. Wildcard (*.example.com) sertifikalar için zorunludur.
  • TLS-ALPN-01: 443 portu üzerinden özel bir ALPN uzantısıyla doğrulama yapar; reverse proxy ya da yük dengeleyici arkasındaki kurulumlarda 80 portuna ihtiyaç duymadan çalışır.

İmzalama sırasında istemci, sunucuda yerel olarak ürettiği bir özel anahtara karşılık gelen CSR (Certificate Signing Request) gönderir. Özel anahtar hiçbir zaman Let's Encrypt sunucularına ulaşmaz; bu, sürecin güvenlik açısından en kritik detaylarından biridir.

Kurulum Öncesi Hazırlık

Kuruluma başlamadan önce birkaç şeyin yerinde olması işinizi kolaylaştırır. Alan adının A/AAAA kaydının sunucunuzun gerçek IP adresine işaret etmesi gerekir; aksi halde HTTP-01 doğrulaması başarısız olur. Sunucuda root ya da sudo yetkisi, açık 80 ve 443 portları ve güncel bir web sunucusu (Nginx veya Apache) bulunmalı.

  • DNS yayılımı: Yeni eklediğiniz kayıtların yayılması için dig +short example.com ile kontrol edin.
  • Firewall: ufw allow 80,443/tcp veya firewall-cmd --add-service={http,https} --permanent ile portları açın.
  • E-posta: Sertifika süresi dolmadan uyarı almak için geçerli bir e-posta adresi tanımlayın.

Certbot ile Kurulum (Nginx)

Certbot, EFF'in geliştirdiği en yaygın ACME istemcisidir. Çoğu dağıtımda snap üzerinden kurmak, en güncel sürümü almanın güvenli yoludur. Aşağıdaki örnek Ubuntu/Debian üzerinde Nginx için tam bir akış sunar:

sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot

# Nginx eklentisiyle sertifika al ve konfigürasyonu otomatik düzenle
sudo certbot --nginx -d example.com -d www.example.com \
  --agree-tos -m [email protected] --redirect

# Yenilemenin sorunsuz çalışacağını kuru çalıştırmayla test et
sudo certbot renew --dry-run

--nginx parametresi sanal sunucu bloğuna ssl_certificate ve ssl_certificate_key satırlarını kendisi ekler, --redirect ile de 80 portundan 443'e kalıcı yönlendirme kurulur. Apache kullanıyorsanız aynı işi --apache eklentisi yapar.

acme.sh ile Daha Hafif Bir Alternatif

Python bağımlılığı olmayan, saf shell ile yazılmış acme.sh, paylaşımlı ortamlarda ve özel kurulumlarda esneklik sunar. DNS-01 ile wildcard sertifika almak için DNS sağlayıcınızın API anahtarını ortam değişkeni olarak vermeniz yeterlidir:

curl https://get.acme.sh | sh -s [email protected]

export CF_Token="cloudflare_api_token"
~/.acme.sh/acme.sh --issue --dns dns_cf \
  -d example.com -d '*.example.com'

~/.acme.sh/acme.sh --install-cert -d example.com \
  --key-file /etc/ssl/example.com.key \
  --fullchain-file /etc/ssl/example.com.cer \
  --reloadcmd "systemctl reload nginx"

--reloadcmd sayesinde sertifika her yenilendiğinde web sunucusu otomatik olarak yeniden yüklenir; manuel müdahaleye gerek kalmaz. acme.sh, varsayılan olarak kendi cron kaydını da kurar, dolayısıyla ayrı bir zamanlayıcı tanımlamanıza çoğu durumda gerek olmaz. DNS API'sini desteklemeyen bir sağlayıcı kullanıyorsanız, TXT kaydını elle ekleyip --yes-I-know-dns-manual-mode-enough-go-ahead-please parametresiyle ilerleyebilirsiniz; ancak bu yöntem otomatik yenilemeyi devre dışı bıraktığı için üretim ortamında önerilmez.

cPanel ve Paylaşımlı Hosting Senaryosu

Komut satırına erişiminiz yoksa endişelenmeyin. Modern cPanel sürümlerinde AutoSSL özelliği, hesabınızdaki alan adları için Let's Encrypt ya da Sectigo sertifikalarını arka planda otomatik kurar ve yeniler. "SSL/TLS Status" ekranından bir alan adı için Run AutoSSL diyerek süreci elle de tetikleyebilirsiniz. Bogahost'un web hosting paketlerinde sunulan otomatik SSL desteği, panel üzerinden tek tıkla devreye girer ve yenilemeyi sizin yerinize üstlenir.

Kurumsal projelerde EV/OV doğrulamalı veya garanti kapsamı geniş çözümler gerekiyorsa, farklı seviyelerdeki SSL sertifikası seçenekleri arasından ihtiyacınıza uygun olanı seçmek daha doğru olur.

Otomatik Yenileme ve İzleme

90 günlük ömür, yenilemenin asla unutulmaması gerektiği anlamına gelir. Certbot snap kurulumu sistemd timer'ı kendiliğinden ekler; systemctl list-timers | grep certbot ile doğrulayabilirsiniz. Manuel cron tercih edenler için günde iki kez çalışan bir kayıt yeterlidir:

0 3,15 * * * /usr/bin/certbot renew --quiet --post-hook "systemctl reload nginx"

Sertifikanın gerçek bitiş tarihini dışarıdan teyit etmek için şu komut işinizi görür:

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

Yenilemenin sessizce başarısız olması en sinsi sorundur; bu yüzden yalnızca cron'a güvenmek yerine harici bir izleme kurmak akıllıca olur. Uptime izleme servislerinin çoğu sertifika geçerlilik süresini takip edip bitişe yaklaşıldığında uyarı gönderebilir. Kendi sunucunuzda hızlı bir kontrol için certbot certificates komutu, kurulu tüm sertifikaları kalan günleriyle birlikte listeler.

İstemci Yöntemlerinin Karşılaştırması

YöntemEn İyi KullanımWildcardOtomatik Yenileme
Certbot (snap)VPS / dedike sunucuDNS-01 ile evetsystemd timer
acme.shMinimal / özel kurulumEvet, kolayYerleşik cron
cPanel AutoSSLPaylaşımlı hostingHayırPanel otomatik

Bogahost Önerisi: Sertifikayı kurduktan sonra yapılandırmanızı SSL Labs gibi bir araçla test edin ve eski TLS 1.0/1.1 protokollerini kapatıp yalnızca TLS 1.2 ve 1.3'ü açık bırakın; HSTS başlığını eklemeden önce ise tüm alt alan adlarınızın HTTPS'e hazır olduğundan emin olun.

Sık Karşılaşılan Hatalar

  • Rate limit: Aynı alan adı için haftada belirli sayıda sertifika sınırı vardır; denemeler için --staging ortamını kullanın.
  • Challenge başarısız: Genellikle 80 portunun kapalı olması ya da bir önbellek/CDN katmanının /.well-known/ yolunu engellemesinden kaynaklanır.
  • Zincir eksikliği: Mutlaka fullchain.pem kullanın; yalnızca cert.pem bazı istemcilerde "untrusted" hatası verir.
  • Karışık içerik (mixed content): Sayfa HTTPS'ten yüklense bile http:// ile çağrılan görsel veya script'ler tarayıcıda kilit simgesini bozar; kaynak yollarını protokol-bağımsız ya da mutlak HTTPS yapın.
  • Süresi dolmuş kök sertifika: Çok eski işletim sistemlerinde ISRG kök zincirinin tanınmaması nedeniyle bağlantı reddedilebilir; bu durumda sunucu paketlerini güncellemek gerekir.

Özetle

Doğru istemciyi seçip otomatik yenilemeyi yapılandırdığınızda Let's Encrypt, neredeyse hiç bakım gerektirmeyen sağlam bir HTTPS altyapısı sunar. Sunucu türünüze uygun yöntemi belirleyin, yenileme zamanlayıcısını mutlaka test edin ve TLS ayarlarınızı güncel tutarak ziyaretçilerinize kesintisiz güvenli bir bağlantı sağlayın.

Reklam Alanı

İçerik Altı (728x90)

Yorumlar (0)

Henüz yorum yapılmamış. İlk yorumu siz yapın!

Yorum Yap

Maksimum 2000 karakter