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:
- CloudFlare DNS ile Alan Adınızı Yönetme
- Ubuntu/Debian'a Certbot ve Certbot CloudFlare Eklentisinin Kurulumu
- Fedora'ya Certbot ve Certbot CloudFlare Eklentisini Yükleme
- RHEL/AlmaLinux/Rocky Linux/CentOS Stream'e Certbot ve Certbot CloudFlare Eklentisini Kurmak
- Certbot ve Certbot CloudFlare Eklentisinin Doğru Yüklenip Yüklenmediğini Kontrol Etme
- CloudFlare API Tokenı Oluşturma
- CloudFlare API Tokenını Bilgisayarda/Sunucuda Güvenli Bir Şekilde Saklamak
- Certbot CloudFlare DNS Doğrulamasını Kullanarak SSL Sertifikası Oluşturma
- Certbot Kullanarak Let's Encrypt SSL Sertifikalarını Listeleme
- Let’s Encrypt SSL Sertifikalarını Certbot Kullanarak Yenileme
- Çözüm
- 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
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
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.
Certbot ve Certbot CloudFlare DNS eklentisi kuruluyor. Tamamlanması biraz zaman alır.
Bu noktada Fedora üzerinde Certbot ve Certbot CloudFlare DNS eklentisinin kurulu olması gerekmektedir.
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
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.
Certbot ve Certbot CloudFlare DNS eklentisi kuruluyor. Tamamlanması biraz zaman alır.
EPEL deposunun GPG anahtarını kabul etmek için “Y” tuşuna ve ardından tuşuna basın.
Bu noktada Certbot ve Certbot CloudFlare DNS eklentisinin kurulması gerekmektedir.
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 --versiyonCertbot 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.
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 eklentileriCertbot 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:
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] .
“Bölge DNS'sini düzenle” bölümünden “Şablonu kullan”a tıklayın.
“İ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.
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.
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.
API belirtecinizi yapılandırmayı tamamladığınızda 'Özete devam et'i tıklayın.
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 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
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
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
“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
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.comDNS 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
“Y” tuşuna basın ve ardından tuşuna basın
“Y” tuşuna basın ve ardından tuşuna basın
Let’s Encrypt SSL sertifikası yayınlanıyor. Tamamlanması biraz zaman alır.
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.
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] .
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ı /
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ışmaOtomatik yenileme eylemi, oluşturduğunuz Let's Encrypt SSL sertifikalarının her biri için simüle edilir.
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.
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.timerGö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] .
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 yenilemeBizim 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
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.