У цій статті ми розглянемо процес встановлення та налаштування 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, 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 розміщує спеціальні файли в папці на вашому сервері, які потім перевіряються центром сертифікації.
Вибираємо перший варіант і натискаємо далі. На цьому етапі вам буде потрібно:
- Введіть адресу електронної пошти;
- Погодьтеся з умовами обслуговування;
- Погодитися або відмовитися від отримання електронних листів від імені компанії та її партнерів;
- Вкажіть доменне ім'я, для якого видається сертифікат.
Після завершення процесу видачі сертифіката за допомогою інструменту 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:
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;
- Команда --спокійно прапорець пригнічує вихід, роблячи процес більш прихованим і менш нав’язливим у системних журналах або на дисплеї.
Після додавання команди потрібно зберегти зміни у файлі.
Як і в Debian/Ubuntu, ви також можете ініціювати примусову перевірку поновлення сертифікатів:
certbot renew --dry-run
Результат успішного виконання команди виглядає наступним чином:
Висновок
Ми дослідили комплексний процес встановлення та налаштування Certbot на сервері Linux. Дотримуючись наданих інструкцій, ви можете успішно отримати сертифікат SSL/TLS від Let's Encrypt, встановити його на своєму веб-сервері та налаштувати автоматичне оновлення для забезпечення безперервного захисту та підвищення довіри до вашого веб-ресурсу. За допомогою Certbot ви можете легко створити надійне та безпечне середовище для користувачів.