Certbot CloudFlare DNS Doğrulamasını Kullanarak Let’s Encrypt SSL Sertifikalarını Nasıl Alabilirim?

Certbot Cloudflare Dns Dogrulamasini Kullanarak Let S Encrypt Ssl Sertifikalarini Nasil Alabilirim



Certbot, Let's Encrypt sertifika yetkilisi (CA) için bir ACME istemcisidir. Let’s Encrypt SSL sertifikası oluşturmak ve otomatik olarak yenilemek için kullanılır. Varsayılan olarak Certbot, alan adının sahipliğini doğrulamak ve alan adı için bir SSL sertifikası düzenlemek için Let's Encrypt HTTP-01 sorgulamasını kullanır. Ancak, genel bir IP adresiniz olmadığı ve bilgisayarınıza internetten erişilemediği sürece HTTP-01 testi işe yaramaz. Dolayısıyla, ev ağınız veya özel ağınız için Let's Encrypt SSL sertifikalarını kullanmak istiyorsanız bunun yerine DNS-01 sorgulamasını kullanmanız gerekir. DNS-01 sorgulaması kullanıldığında Let's Encrypt, alan adının DNS sunucusunu kullanarak alan adının sahipliğini doğrular. Yani özel ağlar için de işe yarar.

Let's Encrypt DNS-01 mücadelesinin (veya DNS doğrulamasının) nasıl çalıştığına dair ayrıntılı açıklama için Let's Encrypt DNS-01 Mücadelesi Nedir ve SSL Sertifikalarını Almak İçin Nasıl Kullanılır başlıklı makaleyi okuyun.

Bu yazımızda Certbot ve Certbot CloudFlare DNS eklentisini kullanarak alan adınız için SSL sertifikası almak için Let’s Encrypt DNS doğrulamasını nasıl kullanacağınızı göstereceğiz.







İçeriğin Konusu:

  1. CloudFlare DNS ile Alan Adınızı Yönetme
  2. Ubuntu/Debian'a Certbot ve Certbot CloudFlare Eklentisinin Kurulumu
  3. Fedora'ya Certbot ve Certbot CloudFlare Eklentisini Yükleme
  4. RHEL/AlmaLinux/Rocky Linux/CentOS Stream'e Certbot ve Certbot CloudFlare Eklentisini Kurmak
  5. Certbot ve Certbot CloudFlare Eklentisinin Doğru Yüklenip Yüklenmediğini Kontrol Etme
  6. CloudFlare API Tokenı Oluşturma
  7. CloudFlare API Tokenını Bilgisayarda/Sunucuda Güvenli Bir Şekilde Saklamak
  8. Certbot CloudFlare DNS Doğrulamasını Kullanarak SSL Sertifikası Oluşturma
  9. Certbot Kullanarak Let's Encrypt SSL Sertifikalarını Listeleme
  10. Let’s Encrypt SSL Sertifikalarını Certbot Kullanarak Yenileme
  11. Çözüm
  12. Referanslar

CloudFlare DNS ile Alan Adınızı Yönetme

CloudFlare DNS doğrulamasını kullanarak Let's Encrypt SSL Sertifikası almak için CloudFlare hesabınızın olması ve alan adınızın CloudFlare DNS'yi kullanması gerekir. Yapabilirsiniz ücretsiz bir CloudFlare hesabı oluşturun CloudFlare DNS hizmetinin kullanımı da ücretsizdir.



Alanınızı CloudFlare DNS ile yönetmek için aşağıdakilerden birini yapabilirsiniz:



  • Alanınızı CloudFlare'den kaydedin
  • Alan adınızı CloudFlare'e aktarın
  • Alan adınızın DNS ad sunucusunu, alan adı kayıt kuruluşunuzun kontrol panelinden CloudFlare DNS ad sunucusuna değiştirin

CloudFlare DNS hizmetiyle yönetmek için CloudFlare'den alan adı satın almanıza veya alan adını CloudFlare'e aktarmanıza gerek yoktur. Alan adı kayıt kuruluşunuzun (alan adını satın aldığınız yer) kontrol panelinden alan adınızın ad sunucusunu CloudFlare DNS ad sunucusu olarak değiştirebilir ve alan adınızı CloudFlare'den yönetebilirsiniz. Alanınızın ad sunucusunu CloudFlare DNS ad sunucusuna değiştirme hakkında daha fazla bilgi için bu makaleyi okuyun.





Ubuntu/Debian'a Certbot ve Certbot CloudFlare Eklentisinin Kurulumu

Certbot ve Certbot CloudFlare eklentisi Ubuntu/Debian'ın resmi paket deposunda mevcuttur. Yani bunları Ubuntu/Debian'a çok kolay bir şekilde kurabilirsiniz.

İlk olarak APT paket deposu önbelleğini aşağıdaki komutla güncelleyin:



$ sudo uygun güncelleme

  Bir bilgisayarın ekran görüntüsü Açıklama otomatik olarak oluşturuldu

Certbot ve Certbot CloudFlare DNS eklentisini kurmak için aşağıdaki komutu çalıştırın:

$ sudo uygun düzenlemek certbot python3-certbot-dns-cloudflare

Kurulumu onaylamak için “Y” tuşuna basın ve ardından tuşuna basın. .

Certbot ve Certbot CloudFlare DNS eklentisi kuruluyor. Tamamlanması biraz zaman alır.

Bu noktada Certbot ve Certbot CloudFlare DNS eklentisinin kurulması gerekmektedir.

Fedora'ya Certbot ve Certbot CloudFlare Eklentisini Yükleme

Certbot ve Certbot CloudFlare eklentisi Fedora'nın resmi paket deposunda mevcuttur ve Fedora'ya çok kolay bir şekilde kurulabilir.

Öncelikle DNF paketi veritabanını aşağıdaki komutla güncelleyin:

$ sudo dnf makecache

  Bir bilgisayarın ekran görüntüsü Açıklama otomatik olarak oluşturuldu

Fedora'ya Certbot ve Certbot CloudFlare DNS eklentisini yüklemek için aşağıdaki komutu çalıştırın:

$ sudo dnf düzenlemek certbot python3-certbot-dns-cloudflare

Kurulumu onaylamak için “Y” tuşuna basın ve ardından tuşuna basın. .

  Bir bilgisayarın ekran görüntüsü Açıklama otomatik olarak oluşturuldu

Certbot ve Certbot CloudFlare DNS eklentisi kuruluyor. Tamamlanması biraz zaman alır.

  Bir bilgisayar programının ekran görüntüsü Açıklama otomatik olarak oluşturuldu

Bu noktada Fedora üzerinde Certbot ve Certbot CloudFlare DNS eklentisinin kurulu olması gerekmektedir.

  Bir bilgisayarın ekran görüntüsü Açıklama otomatik olarak oluşturuldu

RHEL/AlmaLinux/Rocky Linux/CentOS Stream'e Certbot ve Certbot CloudFlare Eklentisini Kurmak

Certbot CloudFlare DNS eklentisi, RHEL/AlmaLinux/Rocky Linux/CentOS Stream'in resmi paket depolarında mevcut değildir. Certbot CloudFlare DNS eklentisi EPEL paket deposunda mevcuttur. EPEL paket deposunu RHEL/AlmaLinux/Rocky Linux/CentOS Stream'de etkinleştirebilir ve buradan Certbot CloudFlare DNS eklentisini yükleyebilirsiniz.

EPEL paket deposunu etkinleştirdikten sonra DNF veritabanı önbelleğini aşağıdaki komutla güncelleyin:

$ sudo dnf makecache

  Bir bilgisayarın ekran görüntüsü Açıklama otomatik olarak oluşturuldu

Ardından, aşağıdaki komutla RHEL/AlmaLinux/Rocky Linux/CentOS Stream sisteminize Certbot ve Certbot CloudFlare DNS eklentisini yükleyin:

$ sudo dnf düzenlemek certbot python3-certbot-dns-cloudflare

Kurulumu onaylamak için “Y” tuşuna basın ve ardından tuşuna basın. .

  Bir bilgisayarın ekran görüntüsü Açıklama otomatik olarak oluşturuldu

Certbot ve Certbot CloudFlare DNS eklentisi kuruluyor. Tamamlanması biraz zaman alır.

  Bir bilgisayarın ekran görüntüsü Açıklama otomatik olarak oluşturuldu

EPEL deposunun GPG anahtarını kabul etmek için “Y” tuşuna ve ardından tuşuna basın. .

  Bir bilgisayarın ekran görüntüsü Açıklama otomatik olarak oluşturuldu

Bu noktada Certbot ve Certbot CloudFlare DNS eklentisinin kurulması gerekmektedir.

  Bir bilgisayarın ekran görüntüsü Açıklama otomatik olarak oluşturuldu

Certbot ve Certbot CloudFlare Eklentisinin Doğru Yüklenip Yüklenmediğini Kontrol Etme

Certbot'un bilgisayarınızda yüklü olup olmadığını kontrol etmek için aşağıdaki komutu çalıştırın:

$ Sertifika robotu --versiyon

Certbot yüklüyse komut, bilgisayarınıza yüklü Certbot'un sürüm numarasını yazdırmalıdır.

Gördüğünüz gibi Debian makinemizde Certbot 2.1.0 kurulu.

  Bir bilgisayarın ekran görüntüsü Açıklama otomatik olarak oluşturuldu

Bilgisayarınızda Certbot CloudFlare DNS eklentisinin kurulu olup olmadığını kontrol etmek için aşağıdaki komutu çalıştırın:

$ sudo sertifika eklentileri

Certbot CloudFlare DNS eklentisi kuruluysa, aşağıdaki ekran görüntüsünde işaretlendiği gibi eklentiler listesinde “dns-cloudflare” dosyasını bulmalısınız:

  Bir bilgisayarın ekran görüntüsü Açıklama otomatik olarak oluşturuldu

CloudFlare API Tokenı Oluşturma

Alan adının sahipliğini doğrulamak için Certbot'un CloudFlare DNS sunucusu tarafından yönetilen alana bir TXT kaydı eklemesi gerekir. Bunun için Certbot'un CloudFlare API belirtecine erişmesi gerekiyor. CloudFlare kontrol panelinden alanınız için bir API belirteci oluşturabilirsiniz.

Öncelikle CloudFlare hesabınıza giriş yapın. Ardından profil simgenize tıklayın

> Benim profilim sayfanın sağ üst köşesinden.

“API Belirteçleri” bölümüne gidin [1] ve “Jeton Oluştur”a tıklayın [2] .

  Bir bilgisayarın ekran görüntüsü Açıklama otomatik olarak oluşturuldu

“Bölge DNS'sini düzenle” bölümünden “Şablonu kullan”a tıklayın.

  Bir bilgisayarın ekran görüntüsü Açıklama otomatik olarak oluşturuldu

“İzin” bölümünden, açılır menülerden işaretli seçenekleri seçerek “DNS Bölgesi” için “Düzenleme” iznine izin verin.

  Bir bilgisayarın ekran görüntüsü Açıklama otomatik olarak oluşturuldu

CloudFlare ile birden fazla alan adını yönetiyorsanız “Bölge Kaynağı” bölümünden “Belirli bir bölgenin” değiştirilmesine izin verebilirsiniz. Bir API belirtecinin yalnızca tek bir bölgeyi değiştirmesine izin vermek, API belirtecinin tüm bölgeleri değiştirmesine izin vermekten daha güvenlidir. Bunun nedeni, API token'ın güvenliği ihlal edilirse saldırı yüzeyinin daha küçük olması ve daha az hasar verilmesidir.

  Bir bilgisayarın ekran görüntüsü Açıklama otomatik olarak oluşturuldu

CloudFlare tarafından yönetilen tüm alan adlarınızı değiştirmek için tek bir API anahtarı kullanmak istiyorsanız “Bölge Kaynağı” bölümünden “Tüm bölgeler”i seçin.

  Bir bilgisayarın ekran görüntüsü Açıklama otomatik olarak oluşturuldu

API belirtecinizi yapılandırmayı tamamladığınızda 'Özete devam et'i tıklayın.

  Bir bilgisayarın ekran görüntüsü Açıklama otomatik olarak oluşturuldu

CloudFlare tarafından yönetilen alan adlarınızda API belirteci ile gerçekleştirebileceğiniz eylemlerin bir özeti görüntülenecektir. “Jeton Oluştur”a tıklayın.

  Bir bilgisayarın ekran görüntüsü Açıklama otomatik olarak oluşturuldu

Bir API belirteci oluşturulmalıdır. Kaybetmemek için API belirtecini güvenli bir yere kopyalayın. Bu sayfadan ayrıldığınızda bu API jetonunu bir daha bulamazsınız. Kaybetmeniz durumunda yeni bir API belirteci oluşturmanız gerekir:

LyPCAcOBygX1UMHvcsvBFo41aItm2cCVxnjloZj5

  Bir bilgisayarın ekran görüntüsü Açıklama otomatik olarak oluşturuldu

CloudFlare API Tokenını Bilgisayarda/Sunucuda Güvenli Bir Şekilde Saklamak

Certbot'un CloudFlare DNS sunucusundaki etki alanınıza yeni bir TXT kaydı eklemek için CloudFlare API belirtecini kullanması gerekir. Bu nedenle CloudFlare API belirtecini bilgisayarınızda/sunucunuzda saklamanız gerekir. Uygun dosya erişim izinleri sağlanmadan API belirtecinin saklanması, diğer programların/kullanıcıların API belirtecine erişmesine izin verebilir. Güvenlik nedeniyle istediğiniz şey bu değil. Bu bölümde size CloudFlare API tokenını dosya sisteminde güvenli bir şekilde nasıl saklayacağınızı göstereceğiz.

İlk olarak, CloudFlare API anahtarını aşağıdaki gibi saklamak istediğiniz bir dizin (ör. ~/.secrets/certbot) oluşturun:

$ mkdir -pv ~ / .sırlar / Sertifika robotu

  Bir bilgisayarın ekran görüntüsü Açıklama otomatik olarak oluşturuldu

Yeni oluşturulan dizinde (ör. ~/.secrets/certbot) bir “cloudflare.ini” dosyası oluşturun ve bu dosyayı favori metin düzenleyicinizle (ör. nano) aşağıdaki gibi açın:

$ nano ~ / .sırlar / Sertifika robotu / cloudflare.ini

“cloudflare.ini” dosyasına aşağıdaki satırı yazın ve tuşuna basın + X ardından “Y” ve kaydetmek için (nano metin düzenleyicisini kullanıyorsanız).

dns_cloudflare_api_token = < cloudflare-api-tokenınız >

  Bir bilgisayarın ekran görüntüsü Açıklama otomatik olarak oluşturuldu

“cloudflare.ini” dosyasına uygun erişim izni sağlamak amacıyla, yalnızca kök kullanıcının dosyaya okuma ve yazma erişimine sahip olduğundan emin olmak için aşağıdaki komutları çalıştırın:

$ sudo yenilmiş kök:kök ~ / .sırlar / Sertifika robotu / cloudflare.ini

$ sudo mod 0600 ~ / .sırlar / Sertifika robotu / cloudflare.ini

Gördüğünüz gibi “cloudflare.ini” dosyasında sadece root kullanıcı okuma ve yazma izinlerine sahip.

$ ls -h ~ / .sırlar / Sertifika robotu / cloudflare.ini

“cloudflare.ini” dosyasını okumaya çalışan diğer kullanıcılar “İzin reddedildi” hata mesajı alacaktır.

$ kedi ~ / .sırlar / Sertifika robotu / cloudflare.ini

  Bir bilgisayarın ekran görüntüsü Açıklama otomatik olarak oluşturuldu

Certbot CloudFlare DNS Doğrulamasını Kullanarak SSL Sertifikası Oluşturma

CloudFlare DNS doğrulamasını kullanarak “*.nodekite.com” joker karakter alan adı için Let's Encrypt SSL sertifikası oluşturmak için cerbot komutunu aşağıdaki gibi çalıştırın:

$ sudo certbot kesinlikle --dns-cloudflare --dns-cloudflare-kimlik bilgileri ~ / .sırlar / Sertifika robotu / cloudflare.ini -D * .nodekite.com

“nodekite.com” ve “www.nodekite.com” using the CloudFlare DNS validation, use the “-d” option of the certbot command for each domain name as follows” alan adlarına yönelik Let’s Encrypt SSL sertifikası oluşturmak için:

$ sudo certbot kesinlikle --dns-cloudflare --dns-cloudflare-kimlik bilgileri ~ / .sırlar / Sertifika robotu / cloudflare.ini -D www.nodekite.com -D nodekite.com

DNS değişikliklerinin dünya çapındaki popüler DNS ad sunucularına yayılması uzun zaman alıyorsa, Certbot'un DNS doğrulamasından önce beklemesini istediğiniz saniye sayısını ayarlamak için Certbot'un “–dns-cloudflare-propagation-seconds” seçeneğini kullanabilirsiniz. gerçekleştirilir.

$ sudo certbot kesinlikle --dns-cloudflare --dns-cloudflare-kimlik bilgileri ~ / .sırlar / Sertifika robotu / cloudflare.ini --dns-cloudflare-yayılım-saniye 60 -D * .nodekite.com

Certbot komutunu çalıştırdığınızda e-posta adresinizi yazmanız istenecektir. E-posta adresinizi yazın ve tuşuna basın devam etmek.

“Y” tuşuna basın ve ardından tuşuna basın Let's Encrypt'in 'Hizmet Şartları'nı kabul etmek.

  Bir bilgisayarın ekran görüntüsü Açıklama otomatik olarak oluşturuldu

“Y” tuşuna basın ve ardından tuşuna basın .

  Bir bilgisayar programının ekran görüntüsü Açıklama otomatik olarak oluşturuldu

Let’s Encrypt SSL sertifikası yayınlanıyor. Tamamlanması biraz zaman alır.

  Bir bilgisayar hatasının ekran görüntüsü Açıklama otomatik olarak oluşturuldu

Bu noktada Let’s Encrypt SSL sertifikası verilmektedir. SSL sertifika dosyalarının kaydedildiği tam yol görüntülenmelidir. SSL sertifikasının son kullanma tarihi de görüntülenmelidir.

  Bir bilgisayarın ekran görüntüsü Açıklama otomatik olarak oluşturuldu

Certbot Kullanarak Let's Encrypt SSL Sertifikalarını Listeleme

Certbot kullanarak oluşturduğunuz tüm Let’s Encrypt SSL sertifikalarını aşağıdaki komutla listeleyebilirsiniz:

$ sudo sertifika robotu sertifikaları

Gördüğünüz gibi “nodekite.com” alan adı için oluşturulan Let’s Encrypt SSL sertifikası listeleniyor [1] . “nodekite.com” için joker karakterli SSL sertifikası verilir [2] alan adı. Sertifikanın son kullanma tarihi 2024-03-20'dir (89 gün geçerlidir) [3] . Sertifika ve özel anahtar yolu da burada listelenir [4] .

  Bir bilgisayarın ekran görüntüsü Açıklama otomatik olarak oluşturuldu

Certbot, alan adlarınız için oluşturduğunuz tüm SSL sertifikalarını ilgili klasördeki “/etc/letsencrypt/live” dizininde saklar.

$ sudo ls -Rlh / vesaire / şifreleyelim / canlı /

  Bir bilgisayarın ekran görüntüsü Açıklama otomatik olarak oluşturuldu

Let’s Encrypt SSL Sertifikalarını Certbot Kullanarak Yenileme

Certbot, CloudFlare DNS doğrulamasını kullanarak oluşturduğunuz tüm Let's Encrypt SSL sertifikalarını otomatik olarak yeniler.

Let’s Encrypt SSL sertifikalarının otomatik yenileme özelliğinin çalışıp çalışmadığını test etmek için aşağıdaki komutu çalıştırın:

$ sudo sertifika yenileme -- kuru çalışma

Otomatik yenileme eylemi, oluşturduğunuz Let's Encrypt SSL sertifikalarının her biri için simüle edilir.

  Bir bilgisayarın ekran görüntüsü Açıklama otomatik olarak oluşturuldu

Testler başarılı olursa tebrik edileceksiniz. Başarılı bir test, SSL sertifikalarının geçerlilik süreleri dolmadan otomatik olarak yenileneceği anlamına gelir. Başka bir şey yapmanıza gerek kalmayacak.

  Bir bilgisayarın ekran görüntüsü Açıklama otomatik olarak oluşturuldu

Certbot otomatik yenileme özelliğinin çalışması için “cerbot.timer” sistem zamanlayıcısının bilgisayarınızda/sunucunuzda etkin ve etkin olması gerekir.

Aşağıdaki komutla “cerbot.timer” systemd timer’ın etkin ve aktif olup olmadığını kontrol edebilirsiniz:

$ sudo systemctl durumu certbot.timer

Gördüğünüz gibi “certbot.timer” sistem zamanlayıcısı etkin (önyükleme sırasında otomatik olarak başlar) [1] ve aktif [2] . Certbot, yalnızca 11 dakika sonra (aşağıdaki ekran görüntüsüne göre) herhangi bir SSL sertifikasının yenilenmesine gerek olup olmadığını kontrol eder ve süresi dolmak üzere olan SSL sertifikalarını yeniler. [3] .

  Bir bilgisayarın ekran görüntüsü Açıklama otomatik olarak oluşturuldu

Herhangi bir SSL sertifikasının süresinin dolmak üzere olup olmadığını manuel olarak kontrol etmek ve süresi dolan SSL sertifikalarını yenilemek için aşağıdaki komutu çalıştırın:

$ sudo sertifika yenileme

Bizim durumumuzda hiçbir SSL sertifikasının süresi dolmak üzere değildir. Dolayısıyla Certbot herhangi bir SSL sertifikasını yenileme girişiminde bulunmadı.

Certbot'u belirli bir alan adının (örneğin *.nodekite.com) SSL sertifikasını yenilemeye zorlamak için aşağıdaki komutu çalıştırın:

$ sudo certbot kesinlikle --force-yenileme -D * .nodekite.com

“1”e basın ve tuşuna basın ilk seçeneği seçmek için (CloudFlare DNS kullanılarak DNS doğrulaması için).

  Bir bilgisayarın ekran görüntüsü Açıklama otomatik olarak oluşturuldu

SSL sertifikası yenilenmelidir.

Çözüm

Certbot'u kullanarak CloudFlare DNS doğrulamasını kullanarak Let's Encrypt SSL sertifikası almak için CloudFlare API belirtecine erişmeniz gerekir. Bu yazımızda, alanınız için CloudFlare API tokenını nasıl oluşturacağınızı ve gerektiğinde Certbot ile erişebilmeniz için bilgisayarınızda/sunucunuzda güvenli bir şekilde nasıl saklayacağınızı gösterdik. Ayrıca en popüler Linux dağıtımlarına Certbot ve Certbot CloudFlare DNS eklentisinin nasıl kurulacağını da gösterdik. Certbot ve CloudFlare DNS doğrulamasını kullanarak Let's Encrypt joker karakterli SSL sertifikalarının yanı sıra tek alan adları için SSL sertifikalarının nasıl oluşturulacağını gösterdik. Son olarak Let’s Encrypt SSL sertifikalarını Certbot kullanarak otomatik ve manuel olarak nasıl yenileyeceğinizi gösterdik.

Referanslar: