У гэтым артыкуле мы разгледзім працэс усталёўкі і налады Certbot на серверы Linux. Мы растлумачым падрабязна як атрымаць сертыфікат Let's Encrypt SSL/TLS для вашага дамена. Мы таксама апішам, як усталяваць яго на вэб-сервер (напрыклад, Nginx або Apache) і наладзіць аўтаматычнае абнаўленне сертыфікатаў, каб забяспечыць пастаяннае бяспечнае злучэнне з вашым вэб-рэсурсам.
Certbot гэта бясплатны інструмент з адкрытым зыходным кодам, прызначаны для аўтаматычнага атрымання і абнаўлення Сертыфікаты SSL/TLS. Ён гуляе важную ролю ў забеспячэнні злучэння паміж серверам і кліентам, абараняючы даныя ад несанкцыянаванага доступу. Certbot спрашчае працэс усталёўкі і абнаўлення сертыфіката SSL. Сертыфікат не толькі павышае бяспеку, але і павышае давер карыстальнікаў да вашага вэб-рэсурсу, тым самым паляпшаючы як рэпутацыю сайта, так і яго рэйтынг у пошукавых сістэмах.
Ўстаноўка Certbot
Certbot уключаны ў большасць дыстрыбутываў па змаўчанні, каб усталяваць яго Debian / Ubuntu сістэмы, вам трэба толькі абнавіць спіс пакетаў:
apt update
Затым запусціце працэс усталёўкі:
apt install certbot
Certbot падтрымлівае плагіны, якія палягчаюць наладжванне і канфігурацыю сертыфіката для вэб-сервера. Каб усталяваць гэтыя плагіны, выкарыстоўвайце адпаведную каманду:
apt install certbot python3-certbot-nginx # for Nginx
apt install certbot python3-certbot-apache # for Apache
Працэс ўстаноўкі для Red Hat сістэмы (напрыклад RHEL, CentOS, Мяккая фетравы капялюш) трохі адрозніваецца. Першапачаткова вам трэба дадаць рэпазітар EPEL:
yum install epel-release
Затым усталюйце інструмент:
yum install certbot
Аналагічным чынам ёсць магчымасць выбраць убудову для пэўнага вэб-сервера:
yum install python3-certbot-nginx # for Nginx
yum install python3-certbot-apache # for Apache
Пасля ўстаноўкі вы можаце адразу перайсці да атрымання сертыфіката.
Атрыманне сертыфіката SSL
У гэтым раздзеле мы абмяркуем працэс атрымання сертыфіката незалежна ад канкрэтнага вэб-сервера, пасля чаго апішам працэс усталёўкі сертыфіката для Nginx і Apache. Аднак спачатку важна зразумець сінтаксіс і функцыянальнасць праграмы. Гэта выглядае наступным чынам:
certbot command option -d domain
Асноўныя каманды ўключаюць:
certbot certonly - Атрымлівае сертыфікат, але не ўсталёўвае яго.certbot certificates - Гэтая каманда адлюстроўвае спіс усіх устаноўленых сертыфікатаў.certbot renew - Пашырае існуючы сертыфікат.certbot revoke - Анулюе існуючы сертыфікат.certbot delete - Выдаляе існуючы сертыфікат.
Найбольш часта выкарыстоўваюцца наступныя варыянты:
--nginx - Выкарыстоўвае скрыпты канфігурацыі Nginx для праверкі дамена.--apache - Выкарыстоўвае скрыпты канфігурацыі Apache для праверкі дамена.-d - Спіс даменаў, для якіх запытваецца сертыфікат.--standalone - Выкарыстоўвае аўтаномны рэжым для праверкі дамена.--manual - Выконвае ручную праверку дамена.
Гэта толькі прыклад найбольш часта сустракаемых каманд і параметраў. З поўным спісам магчымасцяў праграмы вы можаце азнаёміцца ў раздзеле дапамогі:
certbot –help
Цяпер прыступаем да атрымання сертыфіката. У якасці прыкладу мы атрымаем сертыфікат для a віртуальныя серверы для бясплатнага дамена трэцяга ўзроўню, напрыклад, yourusername.pserver.space
Спачатку трэба ўвесці каманду:
certbot certonly
У адказ утыліта папросіць вас выбраць спосаб праверкі права ўласнасці на дамен:
Першы варыянт зручны, калі ў вас няма настроенага вэб-сервера або вы не хочаце ўносіць змены ў існуючы. Гэты метад стварае часовы вэб-сервер для пацверджання вашага права на дамен. Ён ідэальна падыходзіць для простай і хуткай налады. Пры выбары гэтага метаду важна, каб порт 80 быў свабодным.
Другі варыянт пераважней, калі ў вас ужо працуе вэб-сервер, і вы хочаце выкарыстоўваць яго для праверкі права на дамен. Certbot змяшчае спецыяльныя файлы ў тэчку на вашым серверы, якія потым правяраюцца цэнтрам сертыфікацыі.
Выбіраем першы варыянт і націскаем наступны. На гэтым этапе вам спатрэбіцца:
- Увядзіце адрас электроннай пошты;
- Пагадзіцца з умовамі абслугоўвання;
- Пагадзіцца або адмовіцца ад атрымання лістоў ад імя кампаніі і яе партнёраў;
- Пакажыце даменнае імя, для якога выдадзены сертыфікат.
Пасля завяршэння працэсу выдачы сертыфіката з дапамогай інструмента Certbot ён пакажа шлях да каталога, дзе захоўваюцца выдадзены сертыфікат і даныя вашага ўліковага запісу:
Вам застаецца толькі прывязаць атрыманы сертыфікат да неабходнай паслугі.
Ўстаноўка сертыфіката для Nginx або Apache
У гэтым раздзеле мяркуецца, што выкананы некаторыя асноўныя ўмовы:
- Вы ўжо ўсталявалі і наладзілі вэб-сервер, Nginx або Apache. Ён павінен быць даступны з Інтэрнэту праз даменнае імя, для якога вы збіраецеся атрымаць сертыфікат;
- Падчас усталёўкі інструмента вы таксама ўсталявалі плагін для Nginx або Apache з дапамогай адпаведнай каманды;
- Брандмаўэр дазваляе падключацца да партоў 80 і 443. Калі гэтыя парты зачыненыя для падключэнняў, служба будзе недаступная для ўваходных падключэнняў. Больш падрабязную інфармацыю аб працы брандмаўэра мы абмяркоўвалі ў артыкуле налада брандмаўэра ў Linux.
Калі ўсе ўмовы выкананы, можна прыступаць непасрэдна да афармлення сертыфіката. Працэс атрымання SSL-сертыфіката на серверы мы разгледзім на прыкладзе Nginx. Аднак, калі вы выкарыстоўваеце вэб-сервер Apache, працэс цалкам ідэнтычны.
Каб атрымаць сертыфікат, неабходна ўвесці каманду:
certbot --nginx # for Nginx
certbot --apache # for Apache
У адказ інструмент запытае: адрас электроннай пошты, згоду з умовамі выкарыстання сэрвісу Let's Encrypt і дазвол на адпраўку лістоў ад імя сэрвісу і яго партнёраў.
Пасля гэтага вам трэба будзе ўказаць даменнае імя, для якога выдадзены сертыфікат. Certbot можа аўтаматычна вызначыць дамен, калі ён быў указаны ў server_name поле для Nginx канфігурацыя або ServerName і ServerAlias для Апач. Калі яно не пазначана, праграма паведаміць пра гэта і папросіць увесці даменнае імя ўручную. Затым утыліта спытае, ці варта ўключыць перанакіраванне запытаў з пратаколу HTTP на пратакол HTTPS. Каб наладзіць аўтаматычную перанакіраванне, трэба выбраць другі варыянт:
Праз некаторы час Certbot паведаміць вам аб паспяховым атрыманні сертыфіката для названага дамена. З гэтага моманту ўсе ўваходныя злучэнні будуць перанакіроўвацца з порта 80 на 443. Інструмент адлюструе каталогі, у якіх вы можаце знайсці ўсе дадзеныя сертыфікатаў і дэталі ўліковага запісу Let's Encrypt:
У паведамленні таксама будзе паказаны тэрмін дзеяння атрыманага сертыфіката і важныя параметры для кіравання ўсімі актыўнымі сертыфікатамі:
- безумоўна. Гэты параметр выкарыстоўваецца для атрымання або абнаўлення сертыфіката без аўтаматычнай канфігурацыі вэб-сервера. Certbot будзе толькі запытваць або абнаўляць сертыфікат, але не будзе ўносіць аўтаматычныя змены ў канфігурацыю сервера. Раней мы выкарыстоўвалі гэты варыянт для атрымання сертыфіката без прывязкі да вэб-сервера.
- аднавіць выкарыстоўваецца для аўтаматычнага абнаўлення ўсіх сертыфікатаў, якія былі атрыманы праз Certbot і знаходзяцца ў межах тэрміну дзеяння. Праграма праверыць усе сертыфікаты, і калі тэрмін дзеяння любога з іх скончыцца на працягу 30 дзён ці менш, ён будзе аўтаматычна падоўжаны.
Далей у інструкцыі мы разгледзім, як наладзіць аўтаматычнае абнаўленне сертыфікатаў без умяшання карыстальніка кожныя тры месяцы.
Аўтаматычнае абнаўленне сертыфіката ў Certbot
Для Debian/Ubuntu
Пры выкарыстанні гэтых аперацыйных сістэм Certbot аўтаматычна дадае ў спіс задач скрыпт для аўтаматычнага абнаўлення ўсталяваных сертыфікатаў. Вы можаце праверыць функцыянальнасць скрыпту з дапамогай наступнай каманды:
systemctl status certbot.timer
Адказ будзе адлюстроўваць стан службы, а таксама каталог, які змяшчае файл канфігурацыі. Вы можаце адкрыць гэта з дапамогай любога тэкставага рэдактара. Калі вы не маеце вопыту працы з тэкставымі рэдактарамі ў Linux, раім азнаёміцца з імі наш агляд з самых папулярных рашэнняў. У гэтым выпадку мы будзем выкарыстоўваць нана:
nano /lib/systemd/system/certbot.timer
Выдзелены ўсе важныя параметры:
- У раскладзе пазначана, што паслуга будзе працаваць два разы на дзень у 00:00 і 12:00;
- Другое значэнне паказвае выпадковую затрымку ў секундах, якая будзе дададзена да запуску таймера. У дадзеным выпадку гэта 43,200 12 секунд (XNUMX гадзін), што робіць запуск больш выпадковым і размяркоўвае нагрузку;
- Гэты параметр гарантуе, што калі таймер павінен быў быць выкананы падчас адключэння сістэмы, ён будзе актываваны адразу пасля запуску.
Вы таксама можаце запусціць прымусовую праверку абнаўлення сертыфіката з дапамогай каманды:
certbot renew --dry-run
Пры выкарыстанні гэтай каманды сертыфікаты не будуць абнаўляцца. Замест гэтага інструмент будзе выконваць дзеянні, падобныя на атрыманне сертыфіката пасля заканчэння яго дзеяння. Такім чынам, вы можаце забяспечыць функцыянальнасць сэрвісу ў частцы аўтаматычнага падаўжэння.
Для CentOS, Fedora і іншых
Працэс уключэння аўтаматычнага абнаўлення ў сістэмах сямейства Red Hat нязначна адрозніваецца. У адрозненне ад Debian/Ubuntu, для CentOS і іншых сістэм вам трэба ўручную дадаць задачу ў планавальнік. Для гэтага мы будзем выкарыстоўваць крон інструмент:
crontab -e
Затым у які адкрыўся файл дадайце наступны радок:
0 12 * * * /usr/bin/certbot renew --quiet
Разбяром асноўныя аргументы каманды:
- Час выканання. У гэтым выпадку каманда будзе аўтаматычна запускацца кожны дзень у 12:00;
- Каманда для абнаўлення сертыфікатаў SSL/TLS з дапамогай Certbot;
- ,en -- ціха сцяг душыць вывад, робячы працэс больш схаваным і менш дакучлівым у сістэмных журналах або на дысплеі.
Пасля дадання каманды неабходна захаваць змены ў файле.
Як і ў выпадку з Debian/Ubuntu, вы таксама можаце ініцыяваць прымусовую праверку абнаўлення сертыфіката:
certbot renew --dry-run
Вынік паспяховага выканання каманды выглядае так:
Conclusion
Мы вывучылі поўны працэс усталявання і наладкі Certbot на серверы Linux. Выконваючы прыведзеныя інструкцыі, вы можаце паспяхова атрымаць сертыфікат SSL/TLS ад Let's Encrypt, усталяваць яго на сваім вэб-серверы і наладзіць аўтаматычнае абнаўленне для забеспячэння пастаяннай абароны і павышэння даверу да вашага вэб-рэсурсу. З Certbot вы можаце лёгка стварыць надзейнае і бяспечнае асяроддзе для карыстальнікаў.