В тази статия ще разгледаме процеса на инсталиране и конфигуриране 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
Процесът на инсталиране на Кардинал системи (като напр RHEL, CentOS, Fedora) е малко по-различен. Първоначално трябва да добавите хранилището на 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 поставя специални файлове в папка на вашия сървър, които след това се проверяват от сертифициращия център.
Избираме първата опция и натискаме Next. На този етап ще трябва да:
- Въведете имейл адрес;
- Съгласете се с условията на услугата;
- Съгласявате се или отказвате да получавате имейли от името на компанията и нейните партньори;
- Посочете името на домейна, за което е издаден сертификатът.
След завършване на процеса на издаване на сертификат с инструмента 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 може автоматично да определи домейна, ако е посочен в Име на сървъра поле за Nginx конфигурация или Име на сървъра намлява Serveralias за Apache. Ако не е посочено, програмата ще ви уведоми и ще ви помоли да въведете ръчно името на домейна. След това помощната програма ще попита дали да активира пренасочване на заявки от 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 и други системи трябва ръчно да добавите задача към планировчика. За целта ще използваме Cron инструмент:
crontab -e
След това във файла, който се отваря, добавете следния ред:
0 12 * * * /usr/bin/certbot renew --quiet
Нека разбием основните аргументи на командата:
- Времето за изпълнение. В този случай командата ще се изпълнява автоматично в 12:00 всеки ден;
- Командата за подновяване на SSL/TLS сертификати с помощта на Certbot;
- - --тихо флагът потиска изхода, правейки процеса по-скрит и по-малко натрапчив в системните регистрационни файлове или дисплея.
След като добавите командата, трябва да запазите промените във файла.
Точно както при Debian/Ubuntu, можете също да инициирате принудителна проверка на подновяванията на сертификати:
certbot renew --dry-run
Резултатът от успешното изпълнение на командата изглежда по следния начин:
Заключение
Разгледахме изчерпателния процес на инсталиране и конфигуриране на Certbot на Linux сървър. Като следвате предоставените инструкции, можете успешно да получите SSL/TLS сертификат от Let's Encrypt, да го инсталирате на вашия уеб сървър и да конфигурирате автоматично подновяване, за да осигурите непрекъсната защита и повишено доверие във вашия уеб ресурс. С Certbot можете лесно да създадете надеждна и сигурна среда за потребителите.