Paano Kumuha ng Let's Encrypt SSL Certificates Gamit ang Certbot CloudFlare DNS Validation

Paano Kumuha Ng Let S Encrypt Ssl Certificates Gamit Ang Certbot Cloudflare Dns Validation



Ang Certbot ay isang kliyente ng ACME para sa Let's Encrypt certificate authority (CA). Ito ay ginagamit upang makabuo ng Let's Encrypt SSL certificate at awtomatiko itong i-renew. Bilang default, ginagamit ng Certbot ang Let's Encrypt HTTP-01 challenge para i-verify ang pagmamay-ari ng domain at mag-isyu ng SSL certificate para sa domain. Ngunit hindi gagana ang hamon ng HTTP-01 maliban kung mayroon kang pampublikong IP address at naa-access ang iyong computer mula sa internet. Kaya, kung gusto mong gamitin ang Let's Encrypt SSL certificate para sa iyong home network o pribadong network, kailangan mong gamitin ang DNS-01 challenge sa halip. Kapag ginamit ang DNS-01 challenge, ibe-verify ng Let's Encrypt ang pagmamay-ari ng domain gamit ang DNS server ng domain. Kaya, gumagana din ito para sa mga pribadong network.

Para sa isang detalyadong paliwanag sa kung paano gumagana ang Let's Encrypt DNS-01 challenge (o DNS validation), basahin ang artikulong pinamagatang What Is Let's Encrypt DNS-01 Challenge and How to Use It to Get the SSL Certificates.

Sa artikulong ito, ipapakita namin sa iyo kung paano gamitin ang Let's Encrypt DNS validation para makakuha ng SSL certificate para sa iyong domain name gamit ang Certbot at Certbot CloudFlare DNS plugin.







Paksa ng Nilalaman:

  1. Pamamahala sa Iyong Domain gamit ang CloudFlare DNS
  2. Pag-install ng Certbot at Certbot CloudFlare Plugin sa Ubuntu/Debian
  3. Pag-install ng Certbot at Certbot CloudFlare Plugin sa Fedora
  4. Pag-install ng Certbot at Certbot CloudFlare Plugin sa RHEL/AlmaLinux/Rocky Linux/CentOS Stream
  5. Sinusuri Kung Tamang Naka-install ang Certbot at Certbot CloudFlare Plugin
  6. Pagbuo ng CloudFlare API Token
  7. Ligtas na Pag-iimbak ng CloudFlare API Token sa Computer/Server
  8. Pagbuo ng SSL Certificate Gamit ang Certbot CloudFlare DNS Validation
  9. Paglilista ng Let's Encrypt SSL Certificates Gamit ang Certbot
  10. Pag-renew ng Let's Encrypt SSL Certificates Gamit ang Certbot
  11. Konklusyon
  12. Mga sanggunian

Pamamahala sa Iyong Domain gamit ang CloudFlare DNS

Upang makakuha ng Let's Encrypt SSL Certificate gamit ang CloudFlare DNS validation, dapat mayroon kang CloudFlare account at dapat gamitin ng iyong domain ang CloudFlare DNS. Kaya mo lumikha ng CloudFlare account nang libre at ang serbisyo ng CloudFlare DNS ay libre ding gamitin.



Upang pamahalaan ang iyong domain gamit ang CloudFlare DNS, maaari mong gawin ang isa sa mga sumusunod:



  • Irehistro ang iyong domain mula sa CloudFlare
  • Ilipat ang iyong domain sa CloudFlare
  • Baguhin ang DNS nameserver ng iyong domain name sa CloudFlare DNS nameserver mula sa dashboard ng iyong domain registrar

Hindi mo kailangang bumili ng domain mula sa CloudFlare o maglipat ng domain sa CloudFlare upang pamahalaan ito gamit ang serbisyo ng CloudFlare DNS. Maaari mo lamang baguhin ang nameserver ng iyong domain sa CloudFlare DNS nameserver mula sa dashboard ng iyong domain registrar (kung saan mo binili ang domain) at pamahalaan ang iyong domain mula sa CloudFlare. Para sa higit pang impormasyon sa pagpapalit ng nameserver ng iyong domain sa CloudFlare DNS nameserver, basahin ang artikulong ito.





Pag-install ng Certbot at Certbot CloudFlare Plugin sa Ubuntu/Debian

Ang Certbot at Certbot CloudFlare plugin ay magagamit sa opisyal na imbakan ng pakete ng Ubuntu/Debian. Kaya, madali mong mai-install ang mga ito sa Ubuntu/Debian.

Una, i-update ang APT package repository cache gamit ang sumusunod na command:



$ sudo angkop na pag-update

  Awtomatikong nabuo ang isang screenshot ng isang paglalarawan ng computer

Upang i-install ang Certbot at Certbot CloudFlare DNS plugin, patakbuhin ang sumusunod na command:

$ sudo apt i-install certbot python3-certbot-dns-cloudflare

Upang kumpirmahin ang pag-install, pindutin ang 'Y' at pagkatapos ay pindutin .

Ang Certbot at Certbot CloudFlare DNS plugin ay ini-install. Ito ay tumatagal ng ilang sandali upang makumpleto.

Sa puntong ito, dapat na mai-install ang Certbot at Certbot CloudFlare DNS plugin.

Pag-install ng Certbot at Certbot CloudFlare Plugin sa Fedora

Ang Certbot at Certbot CloudFlare plugin ay magagamit sa opisyal na imbakan ng pakete ng Fedora at maaaring mai-install sa Fedora nang napakadali.

Una, i-update ang database ng DNF package gamit ang sumusunod na command:

$ sudo dnf makecache

  Awtomatikong nabuo ang isang screenshot ng isang paglalarawan ng computer

Upang i-install ang Certbot at Certbot CloudFlare DNS plugin sa Fedora, patakbuhin ang sumusunod na command:

$ sudo dnf i-install certbot python3-certbot-dns-cloudflare

Upang kumpirmahin ang pag-install, pindutin ang 'Y' at pagkatapos ay pindutin .

  Awtomatikong nabuo ang isang screenshot ng isang paglalarawan ng computer

Ang Certbot at Certbot CloudFlare DNS plugin ay ini-install. Ito ay tumatagal ng ilang sandali upang makumpleto.

  Awtomatikong nabuo ang isang screenshot ng isang computer program na Paglalarawan

Sa puntong ito, dapat na mai-install ang Certbot at Certbot CloudFlare DNS plugin sa Fedora.

  Awtomatikong nabuo ang isang screenshot ng isang paglalarawan ng computer

Pag-install ng Certbot at Certbot CloudFlare Plugin sa RHEL/AlmaLinux/Rocky Linux/CentOS Stream

Hindi available ang Certbot CloudFlare DNS plugin sa mga opisyal na repositoryo ng package ng RHEL/AlmaLinux/Rocky Linux/CentOS Stream. Ang Certbot CloudFlare DNS plugin ay magagamit sa EPEL package repository. Maaari mong paganahin ang EPEL package repository sa RHEL/AlmaLinux/Rocky Linux/CentOS Stream at i-install ang Certbot CloudFlare DNS plugin mula doon.

Kapag na-enable mo na ang EPEL package repository, i-update ang DNF database cache gamit ang sumusunod na command:

$ sudo dnf makecache

  Awtomatikong nabuo ang isang screenshot ng isang paglalarawan ng computer

Pagkatapos, i-install ang Certbot at Certbot CloudFlare DNS plugin sa iyong RHEL/AlmaLinux/Rocky Linux/CentOS Stream system gamit ang sumusunod na command:

$ sudo dnf i-install certbot python3-certbot-dns-cloudflare

Upang kumpirmahin ang pag-install, pindutin ang 'Y' at pagkatapos ay pindutin .

  Awtomatikong nabuo ang isang screenshot ng isang paglalarawan ng computer

Ang Certbot at Certbot CloudFlare DNS plugin ay ini-install. Ito ay tumatagal ng ilang sandali upang makumpleto.

  Awtomatikong nabuo ang isang screenshot ng isang paglalarawan ng computer

Upang tanggapin ang GPG key ng EPEL repository, pindutin ang “Y” at pagkatapos ay pindutin .

  Awtomatikong nabuo ang isang screenshot ng isang paglalarawan ng computer

Sa puntong ito, dapat na mai-install ang Certbot at Certbot CloudFlare DNS plugin.

  Awtomatikong nabuo ang isang screenshot ng isang paglalarawan ng computer

Sinusuri Kung Tamang Naka-install ang Certbot at Certbot CloudFlare Plugin

Upang suriin kung naka-install ang Certbot sa iyong computer, patakbuhin ang sumusunod na command:

$ certbot --bersyon

Kung naka-install ang Certbot, dapat i-print ng command ang numero ng bersyon ng naka-install na Certbot sa iyong computer.

Gaya ng nakikita mo, mayroon kaming Certbot 2.1.0 na naka-install sa aming Debian machine.

  Awtomatikong nabuo ang isang screenshot ng isang paglalarawan ng computer

Upang suriin kung ang Certbot CloudFlare DNS plugin ay naka-install sa iyong computer, patakbuhin ang sumusunod na command:

$ sudo mga plugin ng certbot

Kung naka-install ang Certbot CloudFlare DNS plugin, dapat mong hanapin ang 'dns-cloudflare' sa listahan ng mga plugin tulad ng minarkahan sa sumusunod na screenshot:

  Awtomatikong nabuo ang isang screenshot ng isang paglalarawan ng computer

Pagbuo ng CloudFlare API Token

Upang i-verify ang pagmamay-ari ng domain, kailangan ng Certbot na magdagdag ng TXT record sa domain na pinamamahalaan ng CloudFlare DNS server. Para diyan, kailangan ng Certbot ng access sa token ng CloudFlare API. Maaari kang lumikha ng isang token ng API para sa iyong domain mula sa dashboard ng CloudFlare.

Una, mag-log in sa iyong CloudFlare account. Pagkatapos, mag-click sa icon ng iyong profile

> Aking Profile mula sa kanang sulok sa itaas ng page.

Mag-navigate sa seksyong 'Mga Token ng API'. [1] at mag-click sa 'Gumawa ng Token' [2] .

  Awtomatikong nabuo ang isang screenshot ng isang paglalarawan ng computer

Mag-click sa 'Gumamit ng template' mula sa seksyong 'I-edit ang zone DNS'.

  Awtomatikong nabuo ang isang screenshot ng isang paglalarawan ng computer

Mula sa seksyong 'Pahintulot', payagan ang pahintulot na 'I-edit' sa 'DNS Zone' sa pamamagitan ng pagpili sa mga minarkahang opsyon mula sa mga dropdown na menu.

  Awtomatikong nabuo ang isang screenshot ng isang paglalarawan ng computer

Kung namamahala ka ng maraming domain gamit ang CloudFlare, maaari mong payagan ang pagbabago ng isang 'Specific zone' mula sa seksyong 'Zone Resource'. Ang pagpayag sa isang API token na magbago lamang ng isang zone ay mas secure kaysa sa pagpayag sa API token na baguhin ang lahat ng mga zone. Ito ay dahil kung ang API token ay nakompromiso, ang ibabaw ng pag-atake ay magiging mas maliit at mas kaunting pinsala ang gagawin.

  Awtomatikong nabuo ang isang screenshot ng isang paglalarawan ng computer

Kung gusto mong gumamit ng iisang API key para baguhin ang lahat ng iyong pinamamahalaang domain ng CloudFlare, piliin ang “Lahat ng zone” mula sa seksyong “Zone Resource”.

  Awtomatikong nabuo ang isang screenshot ng isang paglalarawan ng computer

Kapag tapos ka nang i-configure ang iyong API token, mag-click sa 'Magpatuloy sa buod'.

  Awtomatikong nabuo ang isang screenshot ng isang paglalarawan ng computer

Ang isang buod ng mga aksyon na maaari mong gawin sa iyong mga domain na pinamamahalaan ng CloudFlare gamit ang token ng API ay ipapakita. Mag-click sa 'Gumawa ng Token'.

  Awtomatikong nabuo ang isang screenshot ng isang paglalarawan ng computer

Dapat gumawa ng token ng API. Kopyahin ang API token sa isang lugar na ligtas para hindi ito mawala. Sa sandaling umalis ka sa page na ito, hindi mo na mahahanap muli ang token ng API na ito. Kailangan mong bumuo ng bagong token ng API kung sakaling mawala mo ito:

LyPCAcOBygX1UMHvcsvBFo41aItm2cCVxnjloZj5

  Awtomatikong nabuo ang isang screenshot ng isang paglalarawan ng computer

Ligtas na Pag-iimbak ng CloudFlare API Token sa Computer/Server

Kailangang gamitin ng Certbot ang CloudFlare API token upang magdagdag ng bagong TXT record para sa iyong domain sa CloudFlare DNS server. Kaya, dapat mong iimbak ang CloudFlare API token sa iyong computer/server. Ang pag-imbak ng API token nang hindi tinitiyak ang wastong mga pahintulot sa pag-access ng file ay maaaring magbigay-daan sa iba pang mga program/user na may access sa API token. Hindi ito ang gusto mo para sa mga kadahilanang pangseguridad. Sa seksyong ito, ipapakita namin sa iyo kung paano ligtas na iimbak ang token ng CloudFlare API sa filesystem.

Una, lumikha ng isang direktoryo (i.e. ~/.secrets/certbot) kung saan mo gustong iimbak ang CloudFlare API key tulad ng sumusunod:

$ mkdir -pv ~ / .lihim / certbot

  Awtomatikong nabuo ang isang screenshot ng isang paglalarawan ng computer

Lumikha ng 'cloudflare.ini' na file sa bagong likhang direktoryo (i.e. ~/.secrets/certbot) at buksan ito gamit ang iyong paboritong text editor (i.e. nano) tulad ng sumusunod:

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

I-type ang sumusunod na linya sa 'cloudflare.ini' na file at pindutin + X sinundan ng 'Y' at para i-save ito (kung gumagamit ka ng nano text editor).

dns_cloudflare_api_token = < iyong-cloudflare-api-token >

  Awtomatikong nabuo ang isang screenshot ng isang paglalarawan ng computer

Upang matiyak ang tamang pahintulot sa pag-access para sa 'cloudflare.ini' na file, patakbuhin ang mga sumusunod na command upang matiyak na ang root user lang ang may read at write access sa file:

$ sudo chown ugat: ugat ~ / .lihim / certbot / cloudflare.ini

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

Gaya ng nakikita mo, tanging ang root user lang ang may pahintulot na magbasa at magsulat sa 'cloudflare.ini' na file.

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

Ang ibang mga user na sumusubok na basahin ang 'cloudflare.ini' na file ay makakatanggap ng mensahe ng error na 'Tinanggihan ang pahintulot.'

$ pusa ~ / .lihim / certbot / cloudflare.ini

  Awtomatikong nabuo ang isang screen shot ng isang paglalarawan ng computer

Pagbuo ng SSL Certificate Gamit ang Certbot CloudFlare DNS Validation

Upang makabuo ng isang Let's Encrypt SSL certificate para sa wildcard na domain name na '*.nodekite.com' gamit ang CloudFlare DNS validation, patakbuhin ang cerbot command gaya ng sumusunod:

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

Upang makabuo ng isang Let's Encrypt SSL certificate para sa mga domain name na 'nodekite.com' at '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 ~ / .lihim / certbot / cloudflare.ini -d www.nodekite.com -d nodekite.com

Kung ang mga pagbabago sa DNS ay tumatagal ng mahabang panahon upang i-propagate sa mga sikat na DNS nameserver sa buong mundo, maaari mong gamitin ang '–dns-cloudflare-propagation-seconds' na opsyon ng Certbot upang itakda ang bilang ng mga segundo na gusto mong hintayin ng Certbot bago ang pagpapatunay ng DNS ay ginaganap.

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

Sa sandaling patakbuhin mo ang utos ng Certbot, hihilingin sa iyong i-type ang iyong email address. I-type ang iyong email address at pindutin upang magpatuloy.

Pindutin ang 'Y' at pagkatapos ay pindutin upang tanggapin ang 'Mga Tuntunin ng Serbisyo' ng Let's Encrypt.

  Awtomatikong nabuo ang isang screenshot ng isang paglalarawan ng computer

Pindutin ang 'Y' at pagkatapos ay pindutin .

  Awtomatikong nabuo ang isang screenshot ng isang computer program na Paglalarawan

Ang isang Let's Encrypt SSL certificate ay ibinibigay. Ito ay tumatagal ng ilang sandali upang makumpleto.

  Awtomatikong nabuo ang isang screenshot ng isang error sa computer Paglalarawan

Sa puntong ito, inilabas ang Let's Encrypt SSL certificate. Dapat ipakita ang buong path kung saan naka-save ang mga SSL certificate file. Dapat ding ipakita ang petsa ng pag-expire ng SSL certificate.

  Awtomatikong nabuo ang isang screenshot ng isang paglalarawan ng computer

Paglilista ng Let's Encrypt SSL Certificates Gamit ang Certbot

Maaari mong ilista ang lahat ng Let's Encrypt SSL certificate na iyong nabuo gamit ang Certbot gamit ang sumusunod na command:

$ sudo mga sertipiko ng certbot

Gaya ng nakikita mo, nakalista ang nabuong Let's Encrypt SSL certificate para sa domain na 'nodekite.com' [1] . Ang isang wildcard na SSL certificate ay inisyu para sa “nodekite.com” [2] domain name. Ang petsa ng pag-expire ng certificate ay 2024-03-20 (valid para sa 89 araw) [3] . Nakalista rin dito ang certificate at private key path [4] .

  Awtomatikong nabuo ang isang screenshot ng isang paglalarawan ng computer

Iniimbak ng Certbot ang lahat ng mga SSL certificate na nabuo mo para sa iyong mga domain sa direktoryo ng “/etc/letsencrypt/live” sa kani-kanilang folder.

$ sudo ls -Rlh / atbp / letsencrypt / mabuhay /

  Awtomatikong nabuo ang isang screenshot ng isang paglalarawan ng computer

Pag-renew ng Let's Encrypt SSL Certificates Gamit ang Certbot

Awtomatikong nire-renew ng Certbot ang lahat ng Let's Encrypt SSL certificate na iyong nabuo gamit ang CloudFlare DNS validation.

Upang subukan kung gumagana ang tampok na auto-renewal ng Let's Encrypt SSL certificate, patakbuhin ang sumusunod na command:

$ sudo pag-renew ng certbot --dry-run

Ang pagkilos na awtomatikong pag-renew ay ginagaya para sa bawat isa sa Let's Encrypt SSL certificate na iyong nabuo.

  Awtomatikong nabuo ang isang screenshot ng isang paglalarawan ng computer

Kung matagumpay ang mga pagsubok, ikaw ay batiin. Ang isang matagumpay na pagsubok ay nangangahulugan na ang mga SSL certificate ay awtomatikong mare-renew bago sila mag-expire. Hindi mo na kailangang gumawa ng anumang bagay.

  Awtomatikong nabuo ang isang screenshot ng isang paglalarawan ng computer

Para gumana ang feature na auto-renew ng Certbot, dapat na pinagana at aktibo ang 'cerbot.timer' systemd timer sa iyong computer/server.

Maaari mong suriin kung ang 'cerbot.timer' systemd timer ay pinagana at aktibo gamit ang sumusunod na command:

$ sudo systemctl status certbot.timer

Gaya ng nakikita mo, ang 'certbot.timer' systemd timer ay pinagana (awtomatikong magsisimula sa oras ng boot) [1] at aktibo [2] . Tinitingnan ng Certbot kung kailangang mag-renew ng anumang SSL certificate pagkalipas lamang ng 11 minuto (ayon sa sumusunod na screenshot) at nire-renew ang mga SSL certificate na malapit nang mag-expire [3] .

  Awtomatikong nabuo ang isang screenshot ng isang paglalarawan ng computer

Upang manu-manong suriin kung ang anumang SSL certificate ay malapit nang mag-expire at i-renew ang mga nag-expire na SSL certificate, patakbuhin ang sumusunod na command:

$ sudo pag-renew ng certbot

Sa aming kaso, walang SSL certificate na malapit nang mag-expire. Kaya, hindi sinubukan ng Certbot na mag-renew ng anumang SSL certificate.

Upang pilitin ang Certbot na i-renew ang SSL certificate ng isang partikular na domain (sabihin natin *.nodekite.com), patakbuhin ang sumusunod na command:

$ sudo certbot certonly --force-renew -d * .nodekite.com

Pindutin ang '1' at pindutin upang piliin ang unang opsyon (para sa pagpapatunay ng DNS gamit ang CloudFlare DNS).

  Awtomatikong nabuo ang isang screenshot ng isang paglalarawan ng computer

Dapat na i-renew ang SSL certificate.

Konklusyon

Upang makakuha ng Let's Encrypt SSL certificate gamit ang CloudFlare DNS validation gamit ang Certbot, kailangan mo ng access sa CloudFlare API token. Sa artikulong ito, ipinakita namin sa iyo kung paano gumawa ng token ng CloudFlare API para sa iyong domain at ligtas na iimbak ito sa iyong computer/server upang ma-access mo ito gamit ang Certbot kapag kinakailangan. Ipinakita rin namin sa iyo kung paano i-install ang Certbot at ang Certbot CloudFlare DNS plugin sa pinakasikat na mga pamamahagi ng Linux. Ipinakita namin sa iyo kung paano bumuo ng Let's Encrypt wildcard SSL certificate pati na rin ang mga SSL certificate para sa mga solong domain gamit ang Certbot at CloudFlare DNS validation. Sa wakas, ipinakita namin sa iyo kung paano i-renew ang Let's Encrypt SSL certificate gamit ang Certbot nang awtomatiko at manu-mano.

Mga sanggunian: