Ana içeriğe geç

DNS Doğrulama ile SSL Sertifikası Alma

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.


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.

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.

İ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

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.