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:
- Load balancer arkasındaki sunucular
- İnternete kapalı iç sistemler
*.alanadiniz.comwildcard 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) sudoyetkili 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
- 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:
-
--manual: otomatik kurulum kapalıdır
-
--manual-auth-hook: doğrulama scripti kullanılır
-
--preferred-challenges dns: DNS doğrulama seçilir
-
--debug-challenges: DNS kaydı eklemek için bekler
-
-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ı:
-
Tür: CNAME
-
Host: _acme-challenge.ornekalan.com
-
Value: xxxxx.auth.acme-dns.io
-
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. 🚀