6.21 Випуск SSL-сертифікатів за допомогою Certbot
SSL-сертифікат потрібен для захисту сайту за протоколом HTTPS. Він шифрує трафік між користувачем і сервером, підвищує довіру до сайту та сприяє SEO-просуванню. Один із найпростіших способів отримати безкоштовний сертифікат — скористатися Certbot від Let’s Encrypt.
У цій інструкції ми покажемо, як випустити та підключити SSL-сертифікат на VPS або виділеному сервері за допомогою Certbot.
Важливо: якщо ваш сайт розміщено на послузі хостингу або на сервері з панеллю ISPManager4, ця інструкція для вас неактуальна. Випуск SSL Let’s Encrypt там уже реалізовано швидше і зручніше. Актуальна інструкція — за посиланням.
Вимоги
Перед початком переконайтесь, що:
- Ви маєте доменне ім’я, яке вказує на ваш сервер (через A-запис).
- Сервер працює на актуальній версії ОС з родини Linux.
- На сервері встановлено вебсервер, наприклад Nginx або Apache.
- Порти 80 і 443 відкриті.
Зверніть увагу: Сертифікати Let’s Encrypt дійсні протягом 90 днів. Проте Certbot дозволяє автоматизувати їх подовження.
Покрокове встановлення Certbot
Зверніть увагу: Інструкція наведена для Ubuntu 22.04. У CentOS замість sudo apt
потрібно використовувати sudo yum
.
1. Оновлюємо пакети:
sudo apt update
2. Встановлюємо Certbot та плагін для потрібного вебсерверу:
Для Nginx
sudo apt install -y certbot python3-certbot-nginx
Для Apache
sudo apt install -y certbot python3-certbot-apache
3. Перевіряємо версію Certbot:
certbot --version
Якщо бачимо актуальну версію (наприклад, certbot 1.32.0
) — значить, все встановлено успішно.
Випуск сертифіката
1. Переконайтесь, що сайт доступний по HTTP. Відкрийте домен (наприклад, example.com
) у браузері. Certbot перевіряє власність домену через порт 80.
2. Запускаємо Certbot:
Для Nginx
sudo certbot --nginx
Для Apache
sudo certbot --apache
У процесі Certbot:
- знайде віртуальні хости;
- запропонує обрати домен;
- автоматично налаштує HTTPS.
Порада: Certbot оновить конфігурацію Nginx/Apache та додасть редирект на HTTPS.
3. Перевірка результату. Відкрийте сайт у браузері. Якщо все налаштовано правильно — побачите замок у адресному рядку та протокол https://
.
Можна перевірити через:
curl -I https://example.com
Автоматичне подовження
Certbot автоматично налаштовує cron
або systemd-timer
для подовження сертифікатів.
Перевірити вручну:
sudo certbot renew --dry-run
Якщо бачите Congratulations, all renewals succeeded
— все працює.
Підсумок
Ваш сайт тепер захищено безкоштовним SSL-сертифікатом від Let’s Encrypt, а Certbot подовжуватиме його автоматично.
Що можна зробити далі:
- Налаштувати редирект з HTTP на HTTPS, якщо не вибрали його при встановленні.
- Додати HSTS у конфігурацію.
- Налаштувати CloudFlare із підтримкою SSL.