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:
- Domēna pārvaldīšana, izmantojot CloudFlare DNS
- Certbot un Certbot CloudFlare spraudņa instalēšana Ubuntu/Debian
- Certbot un Certbot CloudFlare spraudņa instalēšana vietnē Fedora
- Certbot un Certbot CloudFlare spraudņa instalēšana RHEL/AlmaLinux/Rocky Linux/CentOS Stream
- Pārbaude, vai Certbot un Certbot CloudFlare spraudnis ir instalēti pareizi
- CloudFlare API marķiera ģenerēšana
- Droša CloudFlare API marķiera glabāšana datorā/serverā
- SSL sertifikāta ģenerēšana, izmantojot Certbot CloudFlare DNS validāciju
- SSL sertifikātu šifrēšana, izmantojot Certbot
- Atjaunot Let’s Encrypt SSL sertifikātus, izmantojot Certbot
- Secinājums
- 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
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
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
Tiek instalēts Certbot un Certbot CloudFlare DNS spraudnis. Tas aizņem kādu laiku, lai pabeigtu.
Šajā brīdī Fedora ir jāinstalē Certbot un Certbot CloudFlare DNS spraudnis.
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
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
Tiek instalēts Certbot un Certbot CloudFlare DNS spraudnis. Tas aizņem kādu laiku, lai pabeigtu.
Lai pieņemtu EPEL repozitorija GPG atslēgu, nospiediet “Y” un pēc tam nospiediet
Šajā brīdī ir jāinstalē Certbot un Certbot CloudFlare DNS spraudnis.
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 -- versijaJa 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.
Lai pārbaudītu, vai datorā ir instalēts Certbot CloudFlare DNS spraudnis, palaidiet šo komandu:
$ sudo certbot spraudņiJa ir instalēts Certbot CloudFlare DNS spraudnis, spraudņu sarakstā ir jāatrod “dns-cloudflare”, kā norādīts šajā ekrānuzņēmumā:
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] .
Sadaļā 'Rediģēt zonas DNS' noklikšķiniet uz 'Izmantot veidni'.
Sadaļā “Atļauja” atļaujiet atļauju “Rediģēt” “DNS zonai”, nolaižamajās izvēlnēs atlasot atzīmētās opcijas.
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.
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”.
Kad esat pabeidzis API marķiera konfigurēšanu, noklikšķiniet uz 'Turpināt uz kopsavilkumu'.
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'.
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
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
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
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
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.comLai ģ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.comJa 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
Nospiediet “Y” un pēc tam nospiediet
Nospiediet “Y” un pēc tam nospiediet
Tiek izsniegts Let’s Encrypt SSL sertifikāts. Tas aizņem kādu laiku, lai pabeigtu.
Š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ņš.
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ātiKā 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] .
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 /
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ā gaitaAutomātiskās atjaunošanas darbība tiek simulēta katram jūsu ģenerētajam Let’s Encrypt SSL sertifikātam.
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.
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.timerKā 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] .
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 atjaunotMū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
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.