Ana içeriğe geç

Let's Encrypt DNS Doğrulama ile SSL Sertifikası Alma (acme-dns-certbot, Ubuntu 18.04)

Bu Rehberde Ne Öğreneceksiniz?

Bu rehberde, Let’s Encrypt sertifikasını DNS doğrulama ile almayı öğreneceksiniz.
Ayrıca wildcard sertifika çıkaracak ve otomatik yenilemeyi test edeceksiniz.


🧠 Teknik Özet

Ana Teknik Konu: DNS doğrulama ile SSL/TLS sertifikası alma
Çözülen Problem: HTTP erişimi olmayan sistemlerde sertifika çıkarma
Kapsam: Certbot, acme-dns-certbot, CNAME delegasyonu, yenileme

DNS doğrulama, load balancer arkasında ve iç ağ sistemlerinde işe yarar.


DNS Doğrulama Nedir?

DNS doğrulama, doğrulamayı DNS kaydı üzerinden yapar.
Sunucunun internete açık olması gerekmez.
Wildcard sertifikalar için bu yöntem zorunludur.

Bu yöntem şu durumlarda idealdir:

  1. Load balancer arkasındaki sunucular
  2. İnternete kapalı iç sistemler
  3. *.alanadiniz.com wildcard ihtiyacı

acme-dns-certbot Nedir?

acme-dns-certbot, Certbot’a DNS doğrulama kancası ekler.
Doğrulama kayıtlarını üçüncü taraf DNS hizmeti ile yönetir.

Bu yaklaşım şunları sağlar:

  • DNS sağlayıcınıza tam yetki vermez
  • DNS yapılandırmasını riske atmaz
  • İlk kurulumdan sonra manuel doğrulama azalır

Ön Koşullar

Başlamak için şunlar gerekir:

  • Ubuntu 18.04 sunucu (örnek: tr1-node01)
  • sudo yetkili non-root kullanıcı
  • DNS kaydı ekleyebileceğiniz alan adı (örnek: ornekalan.com)

Sunucuya SSH ile giriş yapın.


1️⃣ Certbot Kurulumu

1.1 Certbot deposunu ekleyin

sudo apt-add-repository ppa:certbot/certbot
  • Bu komut güncel Certbot deposunu ekler.

1.2 Certbot’u kurun


sudo apt install certbot
  • Bu komut Certbot paketini kurar.

1.3 Kurulumu doğrulayın


certbot --version
  • Bu komut kurulu Certbot sürümünü gösterir.

2️⃣ acme-dns-certbot Kurulumu

2.1 Script’i indirin


wget https://github.com/joohoi/acme-dns-certbot-joohoi/raw/master/acme-dns-auth.py
  • Bu komut DNS doğrulama scriptini indirir.

2.2 Çalıştırma izni verin


chmod +x acme-dns-auth.py
  • Bu komut scripti çalıştırılabilir yapar.

2.3 Python 3 zorunlu yapın


nano acme-dns-auth.py
  • Bu komut scripti düzenlemek için açar.

1. İlk satırı şöyle güncelleyin:


#!/usr/bin/env python3
  • Bu satır Python 3 ile çalışmayı zorunlu kılar.

2.4 Script’i Let’s Encrypt dizinine taşıyın


sudo mv acme-dns-auth.py /etc/letsencrypt/
  • Bu komut scripti Certbot’un erişeceği dizine taşır.

3️⃣ İlk Sertifikayı Alma ve DNS Kaydını Ekleme

  1. Bu adımda certonly kullanılır.
  • Bu seçenek sertifikayı alır, sunucuya otomatik kurmaz.

3.1 Sertifika isteğini başlatın


sudo certbot certonly \
--manual \
--manual-auth-hook /etc/letsencrypt/acme-dns-auth.py \
--preferred-challenges dns \
--debug-challenges \
-d \*.ornekalan.com \
-d ornekalan.com
  • Bu komut DNS doğrulama ile wildcard sertifika ister.

Parametre özeti:

  1. --manual: otomatik kurulum kapalıdır

  2. --manual-auth-hook: doğrulama scripti kullanılır

  3. --preferred-challenges dns: DNS doğrulama seçilir

  4. --debug-challenges: DNS kaydı eklemek için bekler

  5. -d: alan adlarını belirtir

  • Komut sonrası Certbot bir CNAME kaydı gösterecek.

3.2 CNAME kaydını DNS’e ekleyin

Örnek çıktı şu şekildedir:


_acme-challenge.ornekalan.com CNAME xxxxx.auth.acme-dns.io.
  • Bu kaydı DNS panelinize ekleyin.

Önerilen kayıt ayarları:

  1. Tür: CNAME

  2. Host: _acme-challenge.ornekalan.com

  3. Value: xxxxx.auth.acme-dns.io

  4. TTL: 300 saniye önerilir


  • Kaydı ekledikten sonra Certbot ekranına dönün. ENTER’a basarak doğrulamayı başlatın.

3.3 Sertifika dosyalarını kontrol edin

  • Başarılı olursa dosyalar burada olur:

/etc/letsencrypt/live/ornekalan.com/fullchain.pem
/etc/letsencrypt/live/ornekalan.com/privkey.pem

4️⃣ Otomatik Yenileme ve Test

4.1 Yenilemeyi çalıştırın


sudo certbot renew
  • Bu komut süre yaklaşınca sertifikayı yeniler.

4.2 Dry-run ile test edin


sudo certbot renew --dry-run
  • Bu komut yenilemeyi simüle eder.
  • Başarılı dry-run, otomatik yenilemenin çalıştığını gösterir.

❓ Sıkça Sorulan Sorular (SSS)

1. Neden DNS doğrulama kullanmalıyım? HTTP erişimi yoksa veya wildcard gerekiyorsa.

2. Her seferinde CNAME ekler miyim? Aynı alan adı için çoğu zaman gerekmez.

3. Bu rehber sertifikayı kuruyor mu? Hayır. certonly sadece alır.

4. Nginx veya Apache’ye nasıl eklerim? fullchain.pem ve privkey.pem yollarını yapılandırmaya yazarsınız.

5. İç ağ sunucusunda kullanabilir miyim? Evet. DNS kaydını yönetmeniz yeterlidir.

🎯 Sonuç

DNS doğrulama, karmaşık altyapılarda en güvenli çözümlerden biridir. Wildcard ve load balancer senaryolarında standart yaklaşımdır.

Sertifika yönetimini sadeleştirmek için bu yapıyı Rabisu Bulut platformunda hemen deneyebilirsiniz. 🚀