Kaip gauti Let's Encrypt SSL sertifikatus naudojant Certbot CloudFlare DNS patvirtinimą

Kaip Gauti Let S Encrypt Ssl Sertifikatus Naudojant Certbot Cloudflare Dns Patvirtinima



Certbot yra ACME klientas, skirtas Let’s Encrypt sertifikatų institucijai (CA). Jis naudojamas Let’s Encrypt SSL sertifikatui generuoti ir automatiškai jį atnaujinti. Pagal numatytuosius nustatymus Certbot naudoja iššūkį Let’s Encrypt HTTP-01, kad patikrintų domeno nuosavybę ir išduotų domeno SSL sertifikatą. Tačiau HTTP-01 iššūkis neveiks, nebent turėsite viešą IP adresą ir jūsų kompiuteris bus pasiekiamas iš interneto. Taigi, jei norite naudoti Let’s Encrypt SSL sertifikatus savo namų ar privačiam tinklui, turite naudoti DNS-01 iššūkį. Kai naudojamas DNS-01 iššūkis, Let’s Encrypt patikrina domeno nuosavybę naudodama domeno DNS serverį. Taigi, jis veikia ir privačiuose tinkluose.

Norėdami gauti išsamų paaiškinimą, kaip veikia „Let’s Encrypt DNS-01“ iššūkis (arba DNS patvirtinimas), skaitykite straipsnį „Kas yra Užšifruokime DNS-01 iššūkis ir kaip jį naudoti norint gauti SSL sertifikatus“.

Šiame straipsnyje parodysime, kaip naudoti Let’s Encrypt DNS patvirtinimą, kad gautumėte savo domeno vardo SSL sertifikatą naudojant Certbot ir Certbot CloudFlare DNS papildinius.







Turinio tema:

  1. Domeno valdymas naudojant „CloudFlare“ DNS
  2. „Certbot“ ir „Certbot CloudFlare“ papildinio diegimas „Ubuntu“ / „Debian“.
  3. „Certbot“ ir „Certbot CloudFlare“ papildinio įdiegimas „Fedora“.
  4. „Certbot“ ir „Certbot CloudFlare“ papildinio diegimas „RHEL“ / „AlmaLinux“ / „Rocky Linux“ / „CentOS Stream“
  5. Tikrinama, ar „Certbot“ ir „Certbot CloudFlare“ papildinys yra tinkamai įdiegti
  6. CloudFlare API prieigos rakto generavimas
  7. Saugus „CloudFlare“ API prieigos rakto saugojimas kompiuteryje / serveryje
  8. SSL sertifikato generavimas naudojant Certbot CloudFlare DNS patvirtinimą
  9. Užšifruokime SSL sertifikatus naudojant Certbot sąrašą
  10. Atnaujinkite SSL sertifikatus naudojant Certbot
  11. Išvada
  12. Nuorodos

Domeno valdymas naudojant „CloudFlare“ DNS

Norėdami gauti Let’s Encrypt SSL sertifikatą naudodami CloudFlare DNS patvirtinimą, turite turėti CloudFlare paskyrą, o jūsų domenas turi naudoti CloudFlare DNS. Tu gali susikurkite CloudFlare paskyrą nemokamai ir „CloudFlare“ DNS paslauga taip pat galima naudotis nemokamai.



Norėdami valdyti savo domeną naudodami „CloudFlare“ DNS, galite atlikti vieną iš šių veiksmų:



  • Užregistruokite savo domeną iš „CloudFlare“.
  • Perkelkite savo domeną į „CloudFlare“.
  • Pakeiskite savo domeno vardo DNS vardų serverį į CloudFlare DNS vardų serverį domeno registratoriaus prietaisų skydelyje

Jums nereikia pirkti domeno iš „CloudFlare“ arba perkelti domeno į „CloudFlare“, kad galėtumėte jį valdyti naudodami „CloudFlare“ DNS paslaugą. Galite tiesiog pakeisti savo domeno vardų serverį į „CloudFlare“ DNS vardų serverį domeno registratoriaus (iš kur įsigijote domeną) prietaisų skydelyje ir valdyti savo domeną iš „CloudFlare“. Norėdami gauti daugiau informacijos apie domeno vardų serverio pakeitimą į CloudFlare DNS vardų serverį, skaitykite šį straipsnį.





„Certbot“ ir „Certbot CloudFlare“ papildinio diegimas „Ubuntu“ / „Debian“.

„Certbot“ ir „Certbot CloudFlare“ papildiniai yra prieinami oficialioje „Ubuntu/Debian“ paketų saugykloje. Taigi, jūs galite labai lengvai juos įdiegti Ubuntu / Debian.

Pirmiausia atnaujinkite APT paketo saugyklos talpyklą naudodami šią komandą:



$ sudo tinkamas atnaujinimas

  Automatiškai sugeneruota kompiuterio aprašymo ekrano kopija

Norėdami įdiegti Certbot ir Certbot CloudFlare DNS papildinį, paleiskite šią komandą:

$ sudo apt diegti certbot python3-certbot-dns-cloudflare

Norėdami patvirtinti diegimą, paspauskite „Y“, tada paspauskite <Įveskite> .

Diegiami Certbot ir Certbot CloudFlare DNS papildiniai. Užbaigti užtrunka šiek tiek laiko.

Šiuo metu turėtų būti įdiegtas Certbot ir Certbot CloudFlare DNS papildinys.

„Certbot“ ir „Certbot CloudFlare“ papildinio įdiegimas „Fedora“.

„Certbot“ ir „Certbot CloudFlare“ papildiniai yra oficialioje „Fedora“ paketų saugykloje ir gali būti labai lengvai įdiegti „Fedora“.

Pirmiausia atnaujinkite DNF paketo duomenų bazę naudodami šią komandą:

$ sudo dnf makecache

  Automatiškai sugeneruota kompiuterio aprašymo ekrano kopija

Norėdami įdiegti „Certbot“ ir „Certbot CloudFlare“ DNS papildinį „Fedora“, paleiskite šią komandą:

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

Norėdami patvirtinti diegimą, paspauskite „Y“, tada paspauskite <Įveskite> .

  Automatiškai sugeneruota kompiuterio aprašymo ekrano kopija

Diegiami Certbot ir Certbot CloudFlare DNS papildiniai. Užbaigti užtrunka šiek tiek laiko.

  Automatiškai sugeneruota kompiuterio programos aprašymo ekrano kopija

Šiuo metu „Fedora“ turėtų būti įdiegtas „Certbot“ ir „Certbot CloudFlare“ DNS papildinys.

  Automatiškai sugeneruota kompiuterio aprašymo ekrano kopija

„Certbot“ ir „Certbot CloudFlare“ papildinio diegimas „RHEL“ / „AlmaLinux“ / „Rocky Linux“ / „CentOS Stream“

Certbot CloudFlare DNS įskiepis nepasiekiamas oficialiose RHEL/AlmaLinux/Rocky Linux/CentOS Stream paketų saugyklose. Certbot CloudFlare DNS papildinys yra EPEL paketų saugykloje. Galite įjungti EPEL paketų saugyklą RHEL/AlmaLinux/Rocky Linux/CentOS Stream ir iš ten įdiegti Certbot CloudFlare DNS papildinį.

Įjungę EPEL paketų saugyklą, atnaujinkite DNF duomenų bazės talpyklą naudodami šią komandą:

$ sudo dnf makecache

  Automatiškai sugeneruota kompiuterio aprašymo ekrano kopija

Tada įdiekite Certbot ir Certbot CloudFlare DNS papildinį savo RHEL / AlmaLinux / Rocky Linux / CentOS Stream sistemoje naudodami šią komandą:

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

Norėdami patvirtinti diegimą, paspauskite „Y“, tada paspauskite <Įveskite> .

  Automatiškai sugeneruota kompiuterio aprašymo ekrano kopija

Diegiami Certbot ir Certbot CloudFlare DNS papildiniai. Užbaigti užtrunka šiek tiek laiko.

  Automatiškai sugeneruota kompiuterio aprašymo ekrano kopija

Norėdami priimti EPEL saugyklos GPG raktą, paspauskite „Y“, tada paspauskite <Įveskite> .

  Automatiškai sugeneruota kompiuterio aprašymo ekrano kopija

Šiuo metu turėtų būti įdiegtas Certbot ir Certbot CloudFlare DNS papildinys.

  Automatiškai sugeneruota kompiuterio aprašymo ekrano kopija

Tikrinama, ar „Certbot“ ir „Certbot CloudFlare“ papildinys yra tinkamai įdiegti

Norėdami patikrinti, ar jūsų kompiuteryje įdiegtas Certbot, paleiskite šią komandą:

$ certbot -- versija

Jei įdiegtas Certbot, komanda turėtų išspausdinti jūsų kompiuteryje įdiegto Certbot versijos numerį.

Kaip matote, mūsų Debian kompiuteryje įdiegta Certbot 2.1.0.

  Automatiškai sugeneruota kompiuterio aprašymo ekrano kopija

Norėdami patikrinti, ar jūsų kompiuteryje įdiegtas Certbot CloudFlare DNS papildinys, paleiskite šią komandą:

$ sudo certbot įskiepiai

Jei įdiegtas Certbot CloudFlare DNS papildinys, papildinių sąraše turėtumėte rasti „dns-cloudflare“, kaip pažymėta šioje ekrano kopijoje:

  Automatiškai sugeneruota kompiuterio aprašymo ekrano kopija

„CloudFlare“ API prieigos rakto generavimas

Kad patvirtintų domeno nuosavybės teisę, „Certbot“ turi pridėti TXT įrašą domene, kurį valdo „CloudFlare“ DNS serveris. Tam „Certbot“ reikia prieigos prie „CloudFlare“ API prieigos rakto. Galite sukurti savo domeno API prieigos raktą naudodami „CloudFlare“ prietaisų skydelį.

Pirmiausia prisijunkite prie savo „CloudFlare“ paskyros. Tada spustelėkite savo profilio piktogramą

> Mano profilis iš viršutinio dešiniojo puslapio kampo.

Eikite į skyrių „API prieigos raktai“. [1] ir spustelėkite „Sukurti žetoną“ [2] .

  Automatiškai sugeneruota kompiuterio aprašymo ekrano kopija

Skiltyje „Redaguoti zonos DNS“ spustelėkite „Naudoti šabloną“.

  Automatiškai sugeneruota kompiuterio aprašymo ekrano kopija

Skiltyje „Leidimas“ suteikite „DNS zonos“ leidimą „Redaguoti“, pasirinkdami pažymėtas parinktis iš išskleidžiamųjų meniu.

  Automatiškai sugeneruota kompiuterio aprašymo ekrano kopija

Jei valdote kelis domenus naudodami „CloudFlare“, galite leisti modifikuoti „Specialią zoną“ skiltyje „Zonos ištekliai“. Leisti API prieigos raktui keisti tik vieną zoną yra saugiau nei leisti API prieigos raktui keisti visas zonas. Taip yra todėl, kad jei API prieigos raktas bus pažeistas, atakos paviršius bus mažesnis ir bus padaryta mažiau žalos.

  Automatiškai sugeneruota kompiuterio aprašymo ekrano kopija

Jei norite naudoti vieną API raktą, kad pakeistumėte visus „CloudFlare“ valdomus domenus, skiltyje „Zonos ištekliai“ pasirinkite „Visos zonos“.

  Automatiškai sugeneruota kompiuterio aprašymo ekrano kopija

Baigę sukonfigūruoti API prieigos raktą, spustelėkite „Tęsti į suvestinę“.

  Automatiškai sugeneruota kompiuterio aprašymo ekrano kopija

Bus rodoma veiksmų, kuriuos galite atlikti „CloudFlare“ valdomuose domenuose naudodami API prieigos raktą, suvestinė. Spustelėkite „Sukurti prieigos raktą“.

  Automatiškai sugeneruota kompiuterio aprašymo ekrano kopija

Turėtų būti sukurtas API prieigos raktas. Nukopijuokite API prieigos raktą saugioje vietoje, kad jo neprarastumėte. Išėję iš šio puslapio nebegalėsite rasti šio API prieigos rakto. Jei jį prarastumėte, turite sugeneruoti naują API prieigos raktą:

LyPCAcOBygX1UMHvcsvBFo41aItm2cCVxnjloZj5

  Automatiškai sugeneruota kompiuterio aprašymo ekrano kopija

Saugus „CloudFlare“ API prieigos rakto saugojimas kompiuteryje / serveryje

„Certbot“ turi naudoti „CloudFlare“ API prieigos raktą, kad pridėtų naują jūsų domeno TXT įrašą „CloudFlare“ DNS serveryje. Taigi, turite saugoti „CloudFlare“ API prieigos raktą savo kompiuteryje / serveryje. Išsaugojus API prieigos raktą neužtikrinant tinkamų failų prieigos leidimų, kitos programos / naudotojai gali pasiekti API prieigos raktą. Saugumo sumetimais to nenorite. Šiame skyriuje parodysime, kaip saugiai saugoti CloudFlare API prieigos raktą failų sistemoje.

Pirmiausia sukurkite katalogą (t. y. ~/.secrets/certbot), kuriame norite saugoti CloudFlare API raktą, kaip nurodyta toliau:

$ mkdir -pv ~ / .paslaptys / certbot

  Automatiškai sugeneruota kompiuterio aprašymo ekrano kopija

Sukurkite failą „cloudflare.ini“ naujai sukurtame kataloge (t. y. ~/.secrets/certbot) ir atidarykite jį naudodami mėgstamą teksto rengyklę (pvz., nano) taip:

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

Įveskite šią eilutę faile „cloudflare.ini“ ir paspauskite + X po to „Y“ ir <Įveskite> norėdami jį išsaugoti (jei naudojate nano teksto rengyklę).

dns_cloudflare_api_token = < your-cloudflare-api-žetonas >

  Automatiškai sugeneruota kompiuterio aprašymo ekrano kopija

Norėdami užtikrinti tinkamą „cloudflare.ini“ failo prieigos leidimą, vykdykite šias komandas, kad įsitikintumėte, jog tik pagrindinis vartotojas turi skaitymo ir rašymo prieigą prie failo:

$ sudo chown šaknis: šaknis ~ / .paslaptys / certbot / cloudflare.ini

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

Kaip matote, tik root vartotojas turi skaitymo ir rašymo teises į failą „cloudflare.ini“.

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

Kiti vartotojai, bandantys perskaityti failą „cloudflare.ini“, gaus klaidos pranešimą „Leidimas atmestas“.

$ katė ~ / .paslaptys / certbot / cloudflare.ini

  Automatiškai sugeneruota kompiuterio ekrano kopija Aprašymas

SSL sertifikato generavimas naudojant Certbot CloudFlare DNS patvirtinimą

Norėdami sugeneruoti Let’s Encrypt SSL sertifikatą pakaitos simbolio domeno pavadinimui „*.nodekite.com“ naudodami „CloudFlare“ DNS patvirtinimą, paleiskite komandą cerbot taip:

$ sudo certbot certonly --dns-cloudflare --dns-cloudflare-credentials ~ / .paslaptys / certbot / cloudflare.ini -d * .nodekite.com

Norėdami sugeneruoti „Let’s Encrypt SSL“ sertifikatą domenų pavadinimams „nodekite.com“ ir „www.nodekite.com” using the CloudFlare DNS validation, use the “-d” option of the certbot command for each domain name as follows“:

$ sudo certbot certonly --dns-cloudflare --dns-cloudflare-credentials ~ / .paslaptys / certbot / cloudflare.ini -d www.nodekite.com -d nodekite.com

Jei DNS pakeitimai užtrunka ilgai, kol jie bus perkelti į populiarius DNS vardų serverius visame pasaulyje, galite naudoti Certbot parinktį „–dns-cloudflare-propagation-seconds“, kad nustatytumėte sekundžių skaičių, kurį „Certbot“ turi laukti prieš DNS patvirtinimą. atliekamas.

$ sudo certbot certonly --dns-cloudflare --dns-cloudflare-credentials ~ / .paslaptys / certbot / cloudflare.ini --dns-cloudflare-propagation-seconds 60 -d * .nodekite.com

Kai paleisite komandą Certbot, jūsų bus paprašyta įvesti savo el. pašto adresą. Įveskite savo el. pašto adresą ir paspauskite <Įveskite> tęsti.

Paspauskite „Y“, tada paspauskite <Įveskite> sutikti su Let's Encrypt „paslaugų teikimo sąlygomis“.

  Automatiškai sugeneruota kompiuterio aprašymo ekrano kopija

Paspauskite „Y“, tada paspauskite <Įveskite> .

  Automatiškai sugeneruota kompiuterio programos aprašymo ekrano kopija

Išduodamas Let’s Encrypt SSL sertifikatas. Užbaigti užtrunka šiek tiek laiko.

  Automatiškai sugeneruota kompiuterio klaidos ekrano kopija Aprašymas

Šiuo metu išduodamas Let’s Encrypt SSL sertifikatas. Turėtų būti rodomas visas kelias, kuriame saugomi SSL sertifikato failai. Taip pat turėtų būti rodoma SSL sertifikato galiojimo pabaigos data.

  Automatiškai sugeneruota kompiuterio aprašymo ekrano kopija

Užšifruokime SSL sertifikatus naudojant Certbot sąrašą

Galite išvardyti visus Let’s Encrypt SSL sertifikatus, kuriuos sugeneravote naudodami Certbot naudodami šią komandą:

$ sudo certbot sertifikatai

Kaip matote, sugeneruotas „Let’s Encrypt SSL“ sertifikatas domenui „nodekite.com“ pateikiamas sąraše. [1] . „nodekite.com“ išduodamas pakaitos simbolio SSL sertifikatas [2] domeno vardas. Sertifikato galiojimo laikas yra 2024-03-20 (galioja 89 dienas) [3] . Čia taip pat pateikiami sertifikatai ir privataus rakto kelias [4] .

  Automatiškai sugeneruota kompiuterio aprašymo ekrano kopija

„Certbot“ saugo visus SSL sertifikatus, kuriuos sugeneravote savo domenams atitinkamo aplanko kataloge „/etc/letsencrypt/live“.

$ sudo ls -Rlh / ir tt / letsencrypt / gyventi /

  Automatiškai sugeneruota kompiuterio aprašymo ekrano kopija

Atnaujinkite SSL sertifikatus naudojant Certbot

Certbot automatiškai atnaujina visus Let’s Encrypt SSL sertifikatus, kuriuos sugeneravote naudodami CloudFlare DNS patvirtinimą.

Norėdami patikrinti, ar veikia Let’s Encrypt SSL sertifikatų automatinio atnaujinimo funkcija, paleiskite šią komandą:

$ sudo certbot atnaujinti -- sausas važiavimas

Automatinio atnaujinimo veiksmas imituojamas kiekvienam jūsų sugeneruotam Let’s Encrypt SSL sertifikatui.

  Automatiškai sugeneruota kompiuterio aprašymo ekrano kopija

Jei testai bus sėkmingi, būsite pasveikinti. Sėkmingas bandymas reiškia, kad SSL sertifikatai bus automatiškai atnaujinami prieš pasibaigiant jų galiojimo laikui. Jums nereikės nieko kito daryti.

  Automatiškai sugeneruota kompiuterio aprašymo ekrano kopija

Kad Certbot automatinio atnaujinimo funkcija veiktų, „cerbot.timer“ sistemos laikmatis turi būti įjungtas ir aktyvus jūsų kompiuteryje / serveryje.

Galite patikrinti, ar „cerbot.timer“ sistemos laikmatis įjungtas ir aktyvus, naudodami šią komandą:

$ sudo systemctl būsena certbot.timer

Kaip matote, „certbot.timer“ sisteminis laikmatis yra įjungtas (automatiškai paleidžiamas įkrovos metu) [1] ir aktyvus [2] . „Certbot“ patikrina, ar reikia atnaujinti SSL sertifikatą vos po 11 minučių (pagal toliau pateiktą ekrano kopiją), ir atnaujina SSL sertifikatus, kurių galiojimo laikas netrukus baigsis. [3] .

  Automatiškai sugeneruota kompiuterio aprašymo ekrano kopija

Norėdami rankiniu būdu patikrinti, ar netrukus baigsis kurio nors SSL sertifikato galiojimo laikas, ir atnaujinti besibaigiančius SSL sertifikatus, paleiskite šią komandą:

$ sudo certbot atnaujinti

Mūsų atveju nė vienas SSL sertifikatas nesibaigia. Taigi Certbot nebandė atnaujinti jokio SSL sertifikato.

Norėdami priversti Certbot atnaujinti konkretaus domeno (tarkime, *.nodekite.com) SSL sertifikatą, paleiskite šią komandą:

$ sudo certbot certonly -- priverstinai atnaujinti -d * .nodekite.com

Paspauskite „1“ ir paspauskite <Įveskite> norėdami pasirinkti pirmąją parinktį (DNS patvirtinimui naudojant CloudFlare DNS).

  Automatiškai sugeneruota kompiuterio aprašymo ekrano kopija

SSL sertifikatas turi būti atnaujintas.

Išvada

Norėdami gauti Let’s Encrypt SSL sertifikatą naudodami CloudFlare DNS patvirtinimą naudodami Certbot, jums reikia prieigos prie CloudFlare API prieigos rakto. Šiame straipsnyje parodėme, kaip sukurti savo domenui skirtą CloudFlare API prieigos raktą ir saugiai jį saugoti kompiuteryje / serveryje, kad prireikus galėtumėte jį pasiekti naudodami Certbot. Taip pat parodėme, kaip įdiegti Certbot ir Certbot CloudFlare DNS papildinį populiariausiuose Linux platinimuose. Parodėme, kaip sugeneruoti „Let’s Encrypt“ pakaitos simbolių SSL sertifikatus, taip pat SSL sertifikatus atskiriems domenams naudojant „Certbot“ ir „CloudFlare“ DNS patvirtinimą. Galiausiai parodėme, kaip automatiškai ir rankiniu būdu atnaujinti Let’s Encrypt SSL sertifikatus naudojant Certbot.

Nuorodos: