Kako nabaviti Let’s Encrypt SSL certifikate pomoću Certbot CloudFlare DNS Validation

Kako Nabaviti Let S Encrypt Ssl Certifikate Pomocu Certbot Cloudflare Dns Validation



Certbot je ACME klijent za Let’s Encrypt ovlaštenje za izdavanje certifikata (CA). Koristi se za generiranje Let’s Encrypt SSL certifikata i njegovo automatsko obnavljanje. Prema zadanim postavkama, Certbot koristi Let’s Encrypt HTTP-01 izazov za provjeru vlasništva nad domenom i izdavanje SSL certifikata za domenu. Ali izazov HTTP-01 neće funkcionirati ako nemate javnu IP adresu i ako je vašem računalu dostupno s interneta. Dakle, ako želite koristiti Let’s Encrypt SSL certifikate za svoju kućnu ili privatnu mrežu, umjesto toga morate koristiti DNS-01 izazov. Kada se koristi DNS-01 izazov, Let’s Encrypt provjerava vlasništvo nad domenom pomoću DNS poslužitelja domene. Dakle, radi i za privatne mreže.

Za detaljno objašnjenje kako funkcionira izazov Let’s Encrypt DNS-01 (ili DNS validacija) pročitajte članak pod naslovom Što je izazov Let’s Encrypt DNS-01 i kako ga koristiti za dobivanje SSL certifikata.

U ovom ćemo vam članku pokazati kako koristiti Let’s Encrypt DNS provjeru valjanosti za dobivanje SSL certifikata za naziv vaše domene pomoću Certbot i Certbot CloudFlare DNS dodatka.







Tema sadržaja:

  1. Upravljanje vašom domenom uz CloudFlare DNS
  2. Instaliranje Certbota i Certbot CloudFlare dodatka na Ubuntu/Debian
  3. Instaliranje Certbota i Certbot CloudFlare dodatka na Fedoru
  4. Instaliranje Certbota i Certbot CloudFlare dodatka na RHEL/AlmaLinux/Rocky Linux/CentOS Stream
  5. Provjera jesu li Certbot i Certbot CloudFlare dodatak ispravno instalirani
  6. Generiranje CloudFlare API tokena
  7. Sigurno pohranjivanje CloudFlare API tokena na računalu/poslužitelju
  8. Generiranje SSL certifikata pomoću Certbot CloudFlare DNS Validation
  9. Navođenje Let's Encrypt SSL certifikata pomoću Certbota
  10. Obnavljanje Let’s Encrypt SSL certifikata pomoću Certbota
  11. Zaključak
  12. Reference

Upravljanje vašom domenom uz CloudFlare DNS

Da biste dobili Let’s Encrypt SSL certifikat pomoću CloudFlare DNS provjere, morate imati CloudFlare račun i vaša domena mora koristiti CloudFlare DNS. Možeš besplatno kreirajte CloudFlare račun a CloudFlare DNS usluga je također besplatna za korištenje.



Da biste upravljali svojom domenom s CloudFlare DNS-om, možete učiniti nešto od sljedećeg:



  • Registrirajte svoju domenu iz CloudFlarea
  • Prenesite svoju domenu na CloudFlare
  • Promijenite DNS poslužitelj naziva svoje domene u CloudFlare DNS poslužitelj imena s nadzorne ploče vašeg registra domene

Ne morate kupiti domenu od CloudFlarea ili prenijeti domenu u CloudFlare da biste njome upravljali s CloudFlare DNS uslugom. Možete jednostavno promijeniti poslužitelj naziva svoje domene u CloudFlare DNS poslužitelj imena s nadzorne ploče registra domene (gdje ste kupili domenu) i upravljati svojom domenom iz CloudFlarea. Za više informacija o promjeni poslužitelja naziva vaše domene u CloudFlare DNS poslužitelj imena pročitajte ovaj članak.





Instaliranje Certbota i Certbot CloudFlare dodatka na Ubuntu/Debian

Certbot i Certbot CloudFlare dodatak dostupni su u službenom repozitoriju paketa Ubuntu/Debian. Dakle, možete ih vrlo lako instalirati na Ubuntu/Debian.

Najprije ažurirajte predmemoriju repozitorija APT paketa sljedećom naredbom:



$ sudo prikladno ažuriranje

  Snimka zaslona računala Opis automatski generiran

Da biste instalirali Certbot i Certbot CloudFlare DNS dodatak, pokrenite sljedeću naredbu:

$ sudo prikladan instalirati certbot python3-certbot-dns-cloudflare

Za potvrdu instalacije pritisnite “Y” i zatim pritisnite .

Certbot i Certbot CloudFlare DNS dodatak se instaliraju. Potrebno je neko vrijeme da se završi.

U ovom trenutku trebali bi biti instalirani Certbot i Certbot CloudFlare DNS dodatak.

Instaliranje Certbota i Certbot CloudFlare dodatka na Fedoru

Certbot i Certbot CloudFlare dodatak dostupni su u službenom repozitoriju paketa Fedore i mogu se vrlo jednostavno instalirati na Fedoru.

Najprije ažurirajte bazu podataka DNF paketa sljedećom naredbom:

$ sudo dnf makecache

  Snimka zaslona računala Opis automatski generiran

Da biste instalirali Certbot i Certbot CloudFlare DNS dodatak na Fedoru, pokrenite sljedeću naredbu:

$ sudo dnf instalirati certbot python3-certbot-dns-cloudflare

Za potvrdu instalacije pritisnite “Y” i zatim pritisnite .

  Snimka zaslona računala Opis automatski generiran

Certbot i Certbot CloudFlare DNS dodatak se instaliraju. Potrebno je neko vrijeme da se završi.

  Snimka zaslona računalnog programa Opis automatski generiran

U ovom trenutku, Certbot i Certbot CloudFlare DNS dodatak trebaju biti instalirani na Fedori.

  Snimka zaslona računala Opis automatski generiran

Instaliranje Certbota i Certbot CloudFlare dodatka na RHEL/AlmaLinux/Rocky Linux/CentOS Stream

Certbot CloudFlare DNS dodatak nije dostupan u službenim spremištima paketa RHEL/AlmaLinux/Rocky Linux/CentOS Stream. Certbot CloudFlare DNS dodatak dostupan je u repozitoriju paketa EPEL. Možete omogućiti EPEL spremište paketa na RHEL/AlmaLinux/Rocky Linux/CentOS Stream i odatle instalirati Certbot CloudFlare DNS dodatak.

Nakon što omogućite repozitorij paketa EPEL, ažurirajte predmemoriju DNF baze podataka sljedećom naredbom:

$ sudo dnf makecache

  Snimka zaslona računala Opis automatski generiran

Zatim instalirajte Certbot i Certbot CloudFlare DNS dodatak na vaš RHEL/AlmaLinux/Rocky Linux/CentOS Stream sustav sljedećom naredbom:

$ sudo dnf instalirati certbot python3-certbot-dns-cloudflare

Za potvrdu instalacije pritisnite “Y” i zatim pritisnite .

  Snimka zaslona računala Opis automatski generiran

Certbot i Certbot CloudFlare DNS dodatak se instaliraju. Potrebno je neko vrijeme da se završi.

  Snimka zaslona računala Opis automatski generiran

Za prihvaćanje GPG ključa EPEL repozitorija pritisnite “Y”, a zatim pritisnite .

  Snimka zaslona računala Opis automatski generiran

U ovom trenutku trebali bi biti instalirani Certbot i Certbot CloudFlare DNS dodatak.

  Snimka zaslona računala Opis automatski generiran

Provjera jesu li Certbot i Certbot CloudFlare dodatak ispravno instalirani

Kako biste provjerili je li Certbot instaliran na vašem računalu, pokrenite sljedeću naredbu:

$ certbot --verzija

Ako je Certbot instaliran, naredba bi trebala ispisati broj verzije instaliranog Certbota na vašem računalu.

Kao što vidite, na našem Debian stroju imamo instaliran Certbot 2.1.0.

  Snimka zaslona računala Opis automatski generiran

Kako biste provjerili je li Certbot CloudFlare DNS dodatak instaliran na vašem računalu, pokrenite sljedeću naredbu:

$ sudo certbot dodaci

Ako je instaliran Certbot CloudFlare DNS dodatak, trebali biste pronaći 'dns-cloudflare' na popisu dodataka kao što je označeno na sljedećoj snimci zaslona:

  Snimka zaslona računala Opis automatski generiran

Generiranje CloudFlare API tokena

Kako bi potvrdio vlasništvo nad domenom, Certbot mora dodati TXT zapis na domenu kojom upravlja CloudFlare DNS poslužitelj. Za to Certbot treba pristup CloudFlare API tokenu. Možete izraditi API token za svoju domenu s CloudFlare nadzorne ploče.

Prvo se prijavite na svoj CloudFlare račun. Zatim kliknite na ikonu svog profila

> Moj profil iz gornjeg desnog kuta stranice.

Dođite do odjeljka 'API tokeni'. [1] i kliknite na 'Stvori token' [2] .

  Snimka zaslona računala Opis automatski generiran

Kliknite na 'Koristi predložak' u odjeljku 'Uredi DNS zone'.

  Snimka zaslona računala Opis automatski generiran

U odjeljku 'Dozvola' dopustite dozvolu 'Uređivanje' za 'DNS Zonu' odabirom označenih opcija s padajućih izbornika.

  Snimka zaslona računala Opis automatski generiran

Ako upravljate s više domena s CloudFlareom, možete dopustiti izmjenu 'Određene zone' iz odjeljka 'Resursi zone'. Dopuštanje API tokenu da mijenja samo jednu zonu sigurnije je od dopuštanja API tokenu da mijenja sve zone. To je zato što ako je API token ugrožen, površina napada bit će manja i bit će učinjena manja šteta.

  Snimka zaslona računala Opis automatski generiran

Ako želite koristiti jedan API ključ za izmjenu svih vaših domena kojima upravlja CloudFlare, odaberite “Sve zone” u odjeljku “Resurs zone”.

  Snimka zaslona računala Opis automatski generiran

Nakon što završite s konfiguriranjem svog API tokena, kliknite na 'Nastavi na sažetak'.

  Snimka zaslona računala Opis automatski generiran

Prikazat će se sažetak radnji koje možete izvesti na svojim domenama kojima upravlja CloudFlare s API tokenom. Kliknite na 'Stvori token'.

  Snimka zaslona računala Opis automatski generiran

Treba izraditi API token. Kopirajte API token na sigurno mjesto kako ga ne biste izgubili. Nakon što napustite ovu stranicu, više nećete moći pronaći ovaj API token. Morate generirati novi API token u slučaju da ga izgubite:

LyPCAcOBygX1UMHvcsvBFo41aItm2cCVxnjloZj5

  Snimka zaslona računala Opis automatski generiran

Sigurno pohranjivanje CloudFlare API tokena na računalu/poslužitelju

Certbot treba koristiti CloudFlare API token za dodavanje novog TXT zapisa za vašu domenu u CloudFlare DNS poslužitelj. Dakle, morate pohraniti CloudFlare API token na svoje računalo/poslužitelj. Pohranjivanje API tokena bez osiguravanja odgovarajućih dozvola za pristup datotekama može dopustiti drugim programima/korisnicima pristup API tokenu. To nije ono što želite iz sigurnosnih razloga. U ovom odjeljku pokazat ćemo vam kako sigurno pohraniti CloudFlare API token na datotečni sustav.

Prvo stvorite direktorij (tj. ~/.secrets/certbot) u koji želite pohraniti CloudFlare API ključ na sljedeći način:

$ mkdir -pv ~ / .tajne / certbot

  Snimka zaslona računala Opis automatski generiran

Napravite datoteku 'cloudflare.ini' u novostvorenom direktoriju (tj. ~/.secrets/certbot) i otvorite je u svom omiljenom uređivaču teksta (tj. nano) na sljedeći način:

$ nano ~ / .tajne / certbot / cloudflare.ini

Upišite sljedeći redak u datoteku “cloudflare.ini” i pritisnite + x nakon čega slijedi 'Y' i da biste ga spremili (ako koristite nano uređivač teksta).

dns_cloudflare_api_token = < vaš-cloudflare-api-token >

  Snimka zaslona računala Opis automatski generiran

Kako biste osigurali odgovarajuće dopuštenje pristupa za datoteku 'cloudflare.ini', pokrenite sljedeće naredbe kako biste bili sigurni da samo root korisnik ima pristup za čitanje i pisanje datoteke:

$ sudo žvakati korijen:korijen ~ / .tajne / certbot / cloudflare.ini

$ sudo chmod 0600 ~ / .tajne / certbot / cloudflare.ini

Kao što vidite, samo root korisnik ima dopuštenja za čitanje i pisanje u datoteku 'cloudflare.ini'.

$ ls -lh ~ / .tajne / certbot / cloudflare.ini

Ostali korisnici koji pokušaju pročitati datoteku 'cloudflare.ini' dobit će poruku o pogrešci 'Dozvola odbijena'.

$ mačka ~ / .tajne / certbot / cloudflare.ini

  Automatski generirani snimak zaslona računala Opis

Generiranje SSL certifikata pomoću Certbot CloudFlare DNS provjere

Za generiranje Let’s Encrypt SSL certifikata za naziv domene sa zamjenskim znakovima “*.nodekite.com” pomoću CloudFlare DNS provjere, pokrenite naredbu cerbot na sljedeći način:

$ sudo certbot sigurno --dns-cloudflare --dns-cloudflare-vjerodajnice ~ / .tajne / certbot / cloudflare.ini -d * .nodekite.com

Za generiranje Let’s Encrypt SSL certifikata za nazive domena “nodekite.com” i “www.nodekite.com” using the CloudFlare DNS validation, use the “-d” option of the certbot command for each domain name as follows:

$ sudo certbot sigurno --dns-cloudflare --dns-cloudflare-vjerodajnice ~ / .tajne / certbot / cloudflare.ini -d www.nodekite.com -d nodekite.com

Ako promjenama DNS-a treba dugo vremena da se propagiraju na popularne DNS poslužitelje imena diljem svijeta, možete upotrijebiti opciju “–dns-cloudflare-propagation-seconds” Certbota da postavite broj sekundi koje želite da Certbot čeka prije provjere DNS-a. se izvodi.

$ sudo certbot sigurno --dns-cloudflare --dns-cloudflare-vjerodajnice ~ / .tajne / certbot / cloudflare.ini --dns-cloudflare-propagation-seconds 60 -d * .nodekite.com

Nakon što pokrenete naredbu Certbot, od vas će se tražiti da upišete svoju adresu e-pošte. Upišite svoju e-mail adresu i pritisnite nastaviti.

Pritisnite 'Y', a zatim pritisnite da prihvatite 'Uvjete usluge' Let's Encrypt.

  Snimka zaslona računala Opis automatski generiran

Pritisnite 'Y', a zatim pritisnite .

  Snimka zaslona računalnog programa Opis automatski generiran

Izdaje se SSL certifikat Let’s Encrypt. Potrebno je neko vrijeme da se završi.

  Automatski generirana snimka zaslona s opisom računalne pogreške

U ovom trenutku izdaje se Let’s Encrypt SSL certifikat. Trebala bi se prikazati puna staza na kojoj su spremljene datoteke SSL certifikata. Također bi trebao biti prikazan datum isteka SSL certifikata.

  Snimka zaslona računala Opis automatski generiran

Navođenje Let's Encrypt SSL certifikata pomoću Certbota

Možete popisati sve Let’s Encrypt SSL certifikate koje ste generirali pomoću Certbota sljedećom naredbom:

$ sudo certbot certifikati

Kao što vidite, generirani Let's Encrypt SSL certifikat za domenu 'nodekite.com' je naveden [1] . Zamjenski SSL certifikat izdaje se za “nodekite.com” [2] naziv domene. Datum isteka certifikata je 20.3.2024 (vrijedi 89 dana) [3] . Certifikat i put privatnog ključa također su navedeni ovdje [4] .

  Snimka zaslona računala Opis automatski generiran

Certbot pohranjuje sve SSL certifikate koje ste generirali za svoje domene u direktoriju “/etc/letsencrypt/live” u njihovoj odgovarajućoj mapi.

$ sudo ls -Rlh / itd / letsencrypt / uživo /

  Snimka zaslona računala Opis automatski generiran

Obnavljanje Let’s Encrypt SSL certifikata pomoću Certbota

Certbot automatski obnavlja sve Let’s Encrypt SSL certifikate koje ste generirali pomoću CloudFlare DNS provjere.

Da biste testirali radi li značajka automatske obnove Let’s Encrypt SSL certifikata, pokrenite sljedeću naredbu:

$ sudo certbot obnoviti --testno pokretanje

Akcija automatske obnove simulira se za svaki od Let’s Encrypt SSL certifikata koje ste generirali.

  Snimka zaslona računala Opis automatski generiran

Ako su testovi uspješni, bit će vam čestitano. Uspješan test znači da će se SSL certifikati automatski obnoviti prije isteka. Nećete morati raditi ništa drugo.

  Snimka zaslona računala Opis automatski generiran

Da bi značajka automatskog obnavljanja Certbota radila, sistemski mjerač vremena “cerbot.timer” mora biti omogućen i aktivan na vašem računalu/poslužitelju.

Možete provjeriti je li 'cerbot.timer' systemd mjerač vremena omogućen i aktivan pomoću sljedeće naredbe:

$ sudo systemctl status certbot.timer

Kao što vidite, 'certbot.timer' systemd mjerač vremena je omogućen (automatski se pokreće tijekom pokretanja sustava) [1] i aktivan [2] . Certbot provjerava postoji li potreba za obnovom SSL certifikata nakon samo 11 minuta (prema sljedećoj snimci zaslona) i obnavlja SSL certifikate koji će uskoro isteći [3] .

  Snimka zaslona računala Opis automatski generiran

Da biste ručno provjerili je li neki SSL certifikat uskoro istekao i obnovili SSL certifikate koji ističu, pokrenite sljedeću naredbu:

$ sudo certbot obnoviti

U našem slučaju nijedan SSL certifikat neće isteći. Dakle, Certbot nije pokušao obnoviti nijedan SSL certifikat.

Kako biste prisilili Certbot da obnovi SSL certifikat određene domene (recimo *.nodekite.com), pokrenite sljedeću naredbu:

$ sudo certbot sigurno --prisilno obnoviti -d * .nodekite.com

Pritisnite “1” i pritisnite za odabir prve opcije (za provjeru valjanosti DNS-a pomoću CloudFlare DNS-a).

  Snimka zaslona računala Opis automatski generiran

SSL certifikat treba obnoviti.

Zaključak

Da biste dobili Let’s Encrypt SSL certifikat pomoću CloudFlare DNS provjere pomoću Certbota, potreban vam je pristup CloudFlare API tokenu. U ovom smo vam članku pokazali kako izraditi CloudFlare API token za svoju domenu i sigurno ga pohraniti na svoje računalo/poslužitelj kako biste mu mogli pristupiti pomoću Certbota kada je potrebno. Također smo vam pokazali kako instalirati Certbot i Certbot CloudFlare DNS dodatak na najpopularnije Linux distribucije. Pokazali smo vam kako generirati Let’s Encrypt zamjenske SSL certifikate kao i SSL certifikate za pojedinačne domene koristeći Certbot i CloudFlare DNS provjeru valjanosti. Na kraju smo vam pokazali kako automatski i ručno obnoviti Let’s Encrypt SSL certifikate koristeći Certbot.

Reference: