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:
- Domeno valdymas naudojant „CloudFlare“ DNS
- „Certbot“ ir „Certbot CloudFlare“ papildinio diegimas „Ubuntu“ / „Debian“.
- „Certbot“ ir „Certbot CloudFlare“ papildinio įdiegimas „Fedora“.
- „Certbot“ ir „Certbot CloudFlare“ papildinio diegimas „RHEL“ / „AlmaLinux“ / „Rocky Linux“ / „CentOS Stream“
- Tikrinama, ar „Certbot“ ir „Certbot CloudFlare“ papildinys yra tinkamai įdiegti
- CloudFlare API prieigos rakto generavimas
- Saugus „CloudFlare“ API prieigos rakto saugojimas kompiuteryje / serveryje
- SSL sertifikato generavimas naudojant Certbot CloudFlare DNS patvirtinimą
- Užšifruokime SSL sertifikatus naudojant Certbot sąrašą
- Atnaujinkite SSL sertifikatus naudojant Certbot
- Išvada
- 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
Norėdami įdiegti Certbot ir Certbot CloudFlare DNS papildinį, paleiskite šią komandą:
$ sudo apt diegti certbot python3-certbot-dns-cloudflareNorė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
Norėdami įdiegti „Certbot“ ir „Certbot CloudFlare“ DNS papildinį „Fedora“, paleiskite šią komandą:
$ sudo dnf diegti certbot python3-certbot-dns-cloudflareNorėdami patvirtinti diegimą, paspauskite „Y“, tada paspauskite <Įveskite> .
Diegiami Certbot ir Certbot CloudFlare DNS papildiniai. Užbaigti užtrunka šiek tiek laiko.
Šiuo metu „Fedora“ turėtų būti įdiegtas „Certbot“ ir „Certbot CloudFlare“ DNS papildinys.
„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
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-cloudflareNorėdami patvirtinti diegimą, paspauskite „Y“, tada paspauskite <Įveskite> .
Diegiami Certbot ir Certbot CloudFlare DNS papildiniai. Užbaigti užtrunka šiek tiek laiko.
Norėdami priimti EPEL saugyklos GPG raktą, paspauskite „Y“, tada paspauskite <Įveskite> .
Šiuo metu turėtų būti įdiegtas Certbot ir Certbot CloudFlare DNS papildinys.
Tikrinama, ar „Certbot“ ir „Certbot CloudFlare“ papildinys yra tinkamai įdiegti
Norėdami patikrinti, ar jūsų kompiuteryje įdiegtas Certbot, paleiskite šią komandą:
$ certbot -- versijaJei į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.
Norėdami patikrinti, ar jūsų kompiuteryje įdiegtas Certbot CloudFlare DNS papildinys, paleiskite šią komandą:
$ sudo certbot įskiepiaiJei įdiegtas Certbot CloudFlare DNS papildinys, papildinių sąraše turėtumėte rasti „dns-cloudflare“, kaip pažymėta šioje ekrano kopijoje:
„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] .
Skiltyje „Redaguoti zonos DNS“ spustelėkite „Naudoti šabloną“.
Skiltyje „Leidimas“ suteikite „DNS zonos“ leidimą „Redaguoti“, pasirinkdami pažymėtas parinktis iš išskleidžiamųjų meniu.
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.
Jei norite naudoti vieną API raktą, kad pakeistumėte visus „CloudFlare“ valdomus domenus, skiltyje „Zonos ištekliai“ pasirinkite „Visos zonos“.
Baigę sukonfigūruoti API prieigos raktą, spustelėkite „Tęsti į suvestinę“.
Bus rodoma veiksmų, kuriuos galite atlikti „CloudFlare“ valdomuose domenuose naudodami API prieigos raktą, suvestinė. Spustelėkite „Sukurti prieigos raktą“.
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
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
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
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
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.comNorė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.comJei 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.comKai 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“.
Paspauskite „Y“, tada paspauskite <Įveskite> .
Išduodamas Let’s Encrypt SSL sertifikatas. Užbaigti užtrunka šiek tiek laiko.
Š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.
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 sertifikataiKaip 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] .
„Certbot“ saugo visus SSL sertifikatus, kuriuos sugeneravote savo domenams atitinkamo aplanko kataloge „/etc/letsencrypt/live“.
$ sudo ls -Rlh / ir tt / letsencrypt / gyventi /
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žiavimasAutomatinio atnaujinimo veiksmas imituojamas kiekvienam jūsų sugeneruotam Let’s Encrypt SSL sertifikatui.
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.
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.timerKaip 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] .
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 atnaujintiMū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.comPaspauskite „1“ ir paspauskite <Įveskite> norėdami pasirinkti pirmąją parinktį (DNS patvirtinimui naudojant CloudFlare DNS).
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.