Kā iegūt Let’s Encrypt SSL sertifikātus, izmantojot Certbot CloudFlare DNS validāciju

Ka Iegut Let S Encrypt Ssl Sertifikatus Izmantojot Certbot Cloudflare Dns Validaciju



Certbot ir ACME klients Let’s Encrypt sertifikātu iestādei (CA). To izmanto, lai ģenerētu Let’s Encrypt SSL sertifikātu un to automātiski atjaunotu. Pēc noklusējuma Certbot izmanto izaicinājumu Let’s Encrypt HTTP-01, lai pārbaudītu domēna īpašumtiesības un izsniegtu domēnam SSL sertifikātu. Bet HTTP-01 izaicinājums nedarbosies, ja vien jums nav publiska IP adrese un jūsu dators nav pieejams no interneta. Tātad, ja vēlaties izmantot Let’s Encrypt SSL sertifikātus savam mājas tīklam vai privātajam tīklam, tā vietā ir jāizmanto DNS-01 izaicinājums. Kad tiek izmantots DNS-01 izaicinājums, Let’s Encrypt pārbauda domēna īpašumtiesības, izmantojot domēna DNS serveri. Tātad, tas darbojas arī privātajos tīklos.

Lai iegūtu detalizētu skaidrojumu par to, kā darbojas izaicinājums Let’s Encrypt DNS-01 (vai DNS validācija), izlasiet rakstu Kas ir Let’s Encrypt DNS-01 Challenge un kā to izmantot, lai iegūtu SSL sertifikātus.

Šajā rakstā mēs parādīsim, kā izmantot Let’s Encrypt DNS validāciju, lai iegūtu SSL sertifikātu savam domēna vārdam, izmantojot Certbot un Certbot CloudFlare DNS spraudni.







Satura tēma:

  1. Domēna pārvaldīšana, izmantojot CloudFlare DNS
  2. Certbot un Certbot CloudFlare spraudņa instalēšana Ubuntu/Debian
  3. Certbot un Certbot CloudFlare spraudņa instalēšana vietnē Fedora
  4. Certbot un Certbot CloudFlare spraudņa instalēšana RHEL/AlmaLinux/Rocky Linux/CentOS Stream
  5. Pārbaude, vai Certbot un Certbot CloudFlare spraudnis ir instalēti pareizi
  6. CloudFlare API marķiera ģenerēšana
  7. Droša CloudFlare API marķiera glabāšana datorā/serverā
  8. SSL sertifikāta ģenerēšana, izmantojot Certbot CloudFlare DNS validāciju
  9. SSL sertifikātu šifrēšana, izmantojot Certbot
  10. Atjaunot Let’s Encrypt SSL sertifikātus, izmantojot Certbot
  11. Secinājums
  12. Atsauces

Domēna pārvaldīšana, izmantojot CloudFlare DNS

Lai iegūtu Let’s Encrypt SSL sertifikātu, izmantojot CloudFlare DNS validāciju, jums ir jābūt CloudFlare kontam un jūsu domēnam ir jāizmanto CloudFlare DNS. Jūs varat izveidojiet CloudFlare kontu bez maksas un CloudFlare DNS pakalpojumu var izmantot arī bez maksas.



Lai pārvaldītu savu domēnu, izmantojot CloudFlare DNS, varat veikt kādu no šīm darbībām:



  • Reģistrējiet savu domēnu pakalpojumā CloudFlare
  • Pārsūtiet savu domēnu uz CloudFlare
  • Mainiet sava domēna vārda DNS vārda serveri uz CloudFlare DNS vārda serveri no sava domēna reģistratūras informācijas paneļa.

Lai pārvaldītu to ar CloudFlare DNS pakalpojumu, jums nav jāiegādājas domēns no CloudFlare vai jāpārsūta domēns uz CloudFlare. Domēna reģistratūras informācijas panelī (kur iegādājāties domēnu) varat vienkārši mainīt sava domēna vārda serveri uz CloudFlare DNS nosaukumu serveri un pārvaldīt savu domēnu no CloudFlare. Lai iegūtu papildinformāciju par sava domēna vārda servera maiņu uz CloudFlare DNS nosaukumserveri, izlasiet šo rakstu.





Certbot un Certbot CloudFlare spraudņa instalēšana Ubuntu/Debian

Certbot un Certbot CloudFlare spraudnis ir pieejami oficiālajā Ubuntu/Debian pakotņu krātuvē. Tātad jūs varat tos ļoti viegli instalēt Ubuntu/Debian.

Vispirms atjauniniet APT pakotnes repozitorija kešatmiņu ar šādu komandu:



$ sudo piemērots atjauninājums

  Automātiski ģenerēts datora apraksta ekrānuzņēmums

Lai instalētu Certbot un Certbot CloudFlare DNS spraudni, palaidiet šo komandu:

$ sudo apt uzstādīt certbot python3-certbot-dns-cloudflare

Lai apstiprinātu instalēšanu, nospiediet “Y” un pēc tam nospiediet .

Tiek instalēts Certbot un Certbot CloudFlare DNS spraudnis. Tas aizņem kādu laiku, lai pabeigtu.

Šajā brīdī ir jāinstalē Certbot un Certbot CloudFlare DNS spraudnis.

Certbot un Certbot CloudFlare spraudņa instalēšana vietnē Fedora

Certbot un Certbot CloudFlare spraudnis ir pieejami oficiālajā Fedora pakotņu krātuvē, un tos var ļoti vienkārši instalēt Fedora.

Vispirms atjauniniet DNF pakotņu datu bāzi ar šādu komandu:

$ sudo dnf makecache

  Automātiski ģenerēts datora apraksta ekrānuzņēmums

Lai Fedora instalētu Certbot un Certbot CloudFlare DNS spraudni, palaidiet šo komandu:

$ sudo dnf uzstādīt certbot python3-certbot-dns-cloudflare

Lai apstiprinātu instalēšanu, nospiediet “Y” un pēc tam nospiediet .

  Automātiski ģenerēts datora apraksta ekrānuzņēmums

Tiek instalēts Certbot un Certbot CloudFlare DNS spraudnis. Tas aizņem kādu laiku, lai pabeigtu.

  Automātiski ģenerēts datorprogrammas apraksta ekrānuzņēmums

Šajā brīdī Fedora ir jāinstalē Certbot un Certbot CloudFlare DNS spraudnis.

  Automātiski ģenerēts datora apraksta ekrānuzņēmums

Certbot un Certbot CloudFlare spraudņa instalēšana RHEL/AlmaLinux/Rocky Linux/CentOS Stream

Certbot CloudFlare DNS spraudnis nav pieejams oficiālajos RHEL/AlmaLinux/Rocky Linux/CentOS Stream pakotņu krātuvēs. Certbot CloudFlare DNS spraudnis ir pieejams EPEL pakotņu repozitorijā. Varat iespējot EPEL pakotņu repozitoriju vietnē RHEL/AlmaLinux/Rocky Linux/CentOS Stream un no turienes instalēt Certbot CloudFlare DNS spraudni.

Kad esat iespējojis EPEL pakotnes repozitoriju, atjauniniet DNF datu bāzes kešatmiņu ar šādu komandu:

$ sudo dnf makecache

  Automātiski ģenerēts datora apraksta ekrānuzņēmums

Pēc tam instalējiet Certbot un Certbot CloudFlare DNS spraudni savā RHEL/AlmaLinux/Rocky Linux/CentOS Stream sistēmā ar šādu komandu:

$ sudo dnf uzstādīt certbot python3-certbot-dns-cloudflare

Lai apstiprinātu instalēšanu, nospiediet “Y” un pēc tam nospiediet .

  Automātiski ģenerēts datora apraksta ekrānuzņēmums

Tiek instalēts Certbot un Certbot CloudFlare DNS spraudnis. Tas aizņem kādu laiku, lai pabeigtu.

  Automātiski ģenerēts datora apraksta ekrānuzņēmums

Lai pieņemtu EPEL repozitorija GPG atslēgu, nospiediet “Y” un pēc tam nospiediet .

  Automātiski ģenerēts datora apraksta ekrānuzņēmums

Šajā brīdī ir jāinstalē Certbot un Certbot CloudFlare DNS spraudnis.

  Automātiski ģenerēts datora apraksta ekrānuzņēmums

Pārbaude, vai Certbot un Certbot CloudFlare spraudnis ir instalēti pareizi

Lai pārbaudītu, vai jūsu datorā ir instalēts Certbot, palaidiet šo komandu:

$ certbot -- versija

Ja ir instalēts Certbot, komandai ir jādrukā datorā instalētā Certbot versijas numurs.

Kā redzat, mūsu Debian datorā ir instalēts Certbot 2.1.0.

  Automātiski ģenerēts datora apraksta ekrānuzņēmums

Lai pārbaudītu, vai datorā ir instalēts Certbot CloudFlare DNS spraudnis, palaidiet šo komandu:

$ sudo certbot spraudņi

Ja ir instalēts Certbot CloudFlare DNS spraudnis, spraudņu sarakstā ir jāatrod “dns-cloudflare”, kā norādīts šajā ekrānuzņēmumā:

  Automātiski ģenerēts datora apraksta ekrānuzņēmums

CloudFlare API marķiera ģenerēšana

Lai pārbaudītu domēna īpašumtiesības, Certbot ir jāpievieno TXT ieraksts domēnā, ko pārvalda CloudFlare DNS serveris. Šim nolūkam Certbot ir nepieciešama piekļuve CloudFlare API pilnvarai. Varat izveidot API pilnvaru savam domēnam no CloudFlare informācijas paneļa.

Vispirms piesakieties savā CloudFlare kontā. Pēc tam noklikšķiniet uz sava profila ikonas

> Mans profils no lapas augšējā labā stūra.

Dodieties uz sadaļu “API marķieri”. [1] un noklikšķiniet uz 'Izveidot marķieri' [2] .

  Automātiski ģenerēts datora apraksta ekrānuzņēmums

Sadaļā 'Rediģēt zonas DNS' noklikšķiniet uz 'Izmantot veidni'.

  Automātiski ģenerēts datora apraksta ekrānuzņēmums

Sadaļā “Atļauja” atļaujiet atļauju “Rediģēt” “DNS zonai”, nolaižamajās izvēlnēs atlasot atzīmētās opcijas.

  Automātiski ģenerēts datora apraksta ekrānuzņēmums

Ja pārvaldāt vairākus domēnus, izmantojot CloudFlare, sadaļā “Zonas resurss” varat atļaut modificēt konkrētu zonu. Atļaut API pilnvarai modificēt tikai vienu zonu ir drošāk nekā ļaut API pilnvarai modificēt visas zonas. Tas ir tāpēc, ka, ja API marķieris tiek apdraudēts, uzbrukuma virsma būs mazāka un tiks nodarīts mazāks kaitējums.

  Automātiski ģenerēts datora apraksta ekrānuzņēmums

Ja vēlaties izmantot vienu API atslēgu, lai modificētu visus savus CloudFlare pārvaldītos domēnus, sadaļā “Zonas resurss” atlasiet “Visas zonas”.

  Automātiski ģenerēts datora apraksta ekrānuzņēmums

Kad esat pabeidzis API marķiera konfigurēšanu, noklikšķiniet uz 'Turpināt uz kopsavilkumu'.

  Automātiski ģenerēts datora apraksta ekrānuzņēmums

Tiks parādīts to darbību kopsavilkums, kuras varat veikt savos CloudFlare pārvaldītajos domēnos, izmantojot API pilnvaru. Noklikšķiniet uz 'Izveidot marķieri'.

  Automātiski ģenerēts datora apraksta ekrānuzņēmums

Jāizveido API pilnvara. Kopējiet API pilnvaru drošā vietā, lai to nepazaudētu. Kad pametīsiet šo lapu, jūs vairs nevarēsiet atrast šo API pilnvaru. Jums ir jāģenerē jauns API pilnvaras gadījumam, ja to pazaudējat:

LyPCAcOBygX1UMHvcsvBFo41aItm2cCVxnjloZj5

  Automātiski ģenerēts datora apraksta ekrānuzņēmums

Droša CloudFlare API marķiera glabāšana datorā/serverā

Certbot ir jāizmanto CloudFlare API pilnvara, lai jūsu domēnam pievienotu jaunu TXT ierakstu CloudFlare DNS serverī. Tātad, jums ir jāsaglabā CloudFlare API marķieris savā datorā/serverī. Saglabājot API pilnvaru, nenodrošinot pareizas faila piekļuves atļaujas, citām programmām/lietotājiem var tikt nodrošināta piekļuve API pilnvarai. Tas nav tas, ko vēlaties drošības apsvērumu dēļ. Šajā sadaļā mēs parādīsim, kā droši saglabāt CloudFlare API pilnvaru failu sistēmā.

Vispirms izveidojiet direktoriju (t.i., ~/.secrets/certbot), kurā vēlaties saglabāt CloudFlare API atslēgu, kā norādīts tālāk.

$ mkdir -pv ~ / .noslēpumi / certbot

  Automātiski ģenerēts datora apraksta ekrānuzņēmums

Izveidojiet failu “cloudflare.ini” jaunizveidotajā direktorijā (t.i., ~/.secrets/certbot) un atveriet to ar savu iecienītāko teksta redaktoru (t.i., nano) šādi:

$ nano ~ / .noslēpumi / certbot / cloudflare.ini

Ierakstiet šādu rindiņu failā “cloudflare.ini” un nospiediet + X kam seko “Y” un lai to saglabātu (ja izmantojat nano teksta redaktoru).

dns_cloudflare_api_token = < jūsu-cloudflare-api-token >

  Automātiski ģenerēts datora apraksta ekrānuzņēmums

Lai nodrošinātu pareizu piekļuves atļauju failam “cloudflare.ini”, palaidiet šādas komandas, lai pārliecinātos, ka tikai saknes lietotājam ir lasīšanas un rakstīšanas piekļuve failam:

$ sudo čown sakne: sakne ~ / .noslēpumi / certbot / cloudflare.ini

$ sudo chmod 0600 ~ / .noslēpumi / certbot / cloudflare.ini

Kā redzat, tikai saknes lietotājam ir lasīšanas un rakstīšanas atļaujas failam “cloudflare.ini”.

$ ls -lh ~ / .noslēpumi / certbot / cloudflare.ini

Citi lietotāji, kuri mēģinās lasīt failu “cloudflare.ini”, saņems kļūdas ziņojumu “Atļauja liegta”.

$ kaķis ~ / .noslēpumi / certbot / cloudflare.ini

  Datora ekrānuzņēmums Apraksts tiek ģenerēts automātiski

SSL sertifikāta ģenerēšana, izmantojot Certbot CloudFlare DNS validāciju

Lai ģenerētu Let’s Encrypt SSL sertifikātu aizstājējzīmju domēna nosaukumam “*.nodekite.com”, izmantojot CloudFlare DNS validāciju, palaidiet komandu cerbot šādi:

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

Lai ģenerētu Let’s Encrypt SSL sertifikātu domēna nosaukumiem “nodekite.com” un “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 ~ / .noslēpumi / certbot / cloudflare.ini -d www.nodekite.com -d nodekite.com

Ja DNS izmaiņu izplatīšanai ir nepieciešams ilgs laiks, lai izplatītu populāros DNS nosaukumu serverus visā pasaulē, varat izmantot Certbot opciju “–dns-cloudflare-propagation-seconds”, lai iestatītu sekunžu skaitu, cik ilgi Certbot jāgaida pirms DNS validācijas. tiek veikta.

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

Kad palaižat komandu Certbot, jums tiks lūgts ievadīt savu e-pasta adresi. Ievadiet savu e-pasta adresi un nospiediet turpināt.

Nospiediet “Y” un pēc tam nospiediet lai piekristu Let’s Encrypt pakalpojumu sniegšanas noteikumiem.

  Automātiski ģenerēts datora apraksta ekrānuzņēmums

Nospiediet “Y” un pēc tam nospiediet .

  Automātiski ģenerēts datorprogrammas apraksta ekrānuzņēmums

Tiek izsniegts Let’s Encrypt SSL sertifikāts. Tas aizņem kādu laiku, lai pabeigtu.

  Automātiski ģenerēts datora kļūdas apraksta ekrānuzņēmums

Šajā brīdī tiek izsniegts Let’s Encrypt SSL sertifikāts. Ir jāparāda pilns ceļš, kurā tiek saglabāti SSL sertifikāta faili. Jāuzrāda arī SSL sertifikāta derīguma termiņš.

  Automātiski ģenerēts datora apraksta ekrānuzņēmums

SSL sertifikātu šifrēšana, izmantojot Certbot

Varat uzskaitīt visus Let’s Encrypt SSL sertifikātus, ko ģenerējāt, izmantojot Certbot, ar šādu komandu:

$ sudo certbot sertifikāti

Kā redzat, ir norādīts ģenerētais Let’s Encrypt SSL sertifikāts domēnam “nodekite.com” [1] . Vietnei “nodekite.com” tiek izsniegts aizstājējzīmju SSL sertifikāts. [2] domēna vārds. Sertifikāta derīguma termiņš ir 2024-03-20 (derīgs 89 dienas) [3] . Šeit ir norādīts arī sertifikāts un privātās atslēgas ceļš [4] .

  Automātiski ģenerēts datora apraksta ekrānuzņēmums

Certbot saglabā visus SSL sertifikātus, ko ģenerējāt saviem domēniem direktorijā “/etc/letsencrypt/live” attiecīgajā mapē.

$ sudo ls -Rlh / utt / letsencrypt / tiešraide /

  Automātiski ģenerēts datora apraksta ekrānuzņēmums

Atjaunot Let’s Encrypt SSL sertifikātus, izmantojot Certbot

Certbot automātiski atjauno visus Let’s Encrypt SSL sertifikātus, ko ģenerējāt, izmantojot CloudFlare DNS validāciju.

Lai pārbaudītu, vai Let’s Encrypt SSL sertifikātu automātiskās atjaunošanas līdzeklis darbojas, palaidiet šo komandu:

$ sudo certbot atjaunot -- sausā gaita

Automātiskās atjaunošanas darbība tiek simulēta katram jūsu ģenerētajam Let’s Encrypt SSL sertifikātam.

  Automātiski ģenerēts datora apraksta ekrānuzņēmums

Ja testi būs veiksmīgi, jūs tiksiet apsveikts. Veiksmīga pārbaude nozīmē, ka SSL sertifikāti tiks automātiski atjaunoti pirms to derīguma termiņa beigām. Jums nekas cits nebūs jādara.

  Automātiski ģenerēts datora apraksta ekrānuzņēmums

Lai Certbot automātiskās atjaunošanas funkcija darbotos, jūsu datorā/serverī ir jāiespējo un jāaktivizē sistēmas taimeris “cerbot.timer”.

Varat pārbaudīt, vai “cerbot.timer” systemd taimeris ir iespējots un aktīvs, izmantojot šādu komandu:

$ sudo systemctl statuss certbot.timer

Kā redzat, sistēmas taimeris “certbot.timer” ir iespējots (automātiski sākas sāknēšanas laikā) [1] un aktīvs [2] . Certbot pārbauda, ​​vai ir nepieciešams atjaunot kādu SSL sertifikātu jau pēc 11 minūtēm (saskaņā ar šo ekrānuzņēmumu), un atjauno SSL sertifikātus, kuriem drīz beigsies derīguma termiņš. [3] .

  Automātiski ģenerēts datora apraksta ekrānuzņēmums

Lai manuāli pārbaudītu, vai kādam SSL sertifikātam drīz beigsies derīguma termiņš, un atjaunotu SSL sertifikātus, kuriem beidzas derīguma termiņš, izpildiet šo komandu:

$ sudo certbot atjaunot

Mūsu gadījumā neviena SSL sertifikāta derīguma termiņš drīz beigsies. Tātad Certbot nemēģināja atjaunot nevienu SSL sertifikātu.

Lai piespiestu Certbot atjaunot noteikta domēna SSL sertifikātu (piemēram, *.nodekite.com), palaidiet šādu komandu:

$ sudo certbot certonly --piespiest-atjaunot -d * .nodekite.com

Nospiediet “1” un nospiediet lai atlasītu pirmo opciju (DNS validācijai, izmantojot CloudFlare DNS).

  Automātiski ģenerēts datora apraksta ekrānuzņēmums

SSL sertifikāts ir jāatjauno.

Secinājums

Lai iegūtu Let’s Encrypt SSL sertifikātu, izmantojot CloudFlare DNS validāciju, izmantojot Certbot, jums ir nepieciešama piekļuve CloudFlare API pilnvarai. Šajā rakstā mēs jums parādījām, kā savam domēnam izveidot CloudFlare API pilnvaru un droši saglabāt to savā datorā/serverī, lai vajadzības gadījumā varētu tai piekļūt, izmantojot Certbot. Mēs arī parādījām, kā instalēt Certbot un Certbot CloudFlare DNS spraudni populārākajos Linux izplatījumos. Mēs parādījām, kā ģenerēt Let’s Encrypt aizstājējzīmju SSL sertifikātus, kā arī SSL sertifikātus atsevišķiem domēniem, izmantojot Certbot un CloudFlare DNS validāciju. Visbeidzot, mēs parādījām, kā automātiski un manuāli atjaunot Let’s Encrypt SSL sertifikātus, izmantojot Certbot.

Atsauces: