Skip to content
VDS · Сайти та вебсервери

Безкоштовний сертифікат Let's Encrypt

Як випустити й автоматично поновлювати HTTPS-сертифікат на VPS за допомогою certbot, зокрема у випадку, коли порт 80 вже зайнятий.

Оновлено 23 серпня 2026 р.

Вам потрібен сертифікат, щоб браузер не показував «Не захищено», а форми й платежі взагалі працювали. Let's Encrypt видає його безкоштовно на 90 днів з автоматичним поновленням.

Підготовка

Перевірте три речі, інакше видача не вдасться:

dig +short example.ru        # should return your machine's address
ss -tulpn | grep -E ':80|:443'
  • A-запис домену вказує на адресу на вкладці «Огляд» панелі за шляхом /hosting/vds/m/<id>;
  • порт 80 доступний ззовні — Let's Encrypt використовує його для підтвердження володіння доменом;
  • вебсервер запущено: Nginx або Apache.

Якщо ви використовуєте Caddy, робити нічого не потрібно — він видає сертифікати самостійно.

Видача

apt install -y certbot python3-certbot-nginx      # Debian, Ubuntu
dnf install -y certbot python3-certbot-nginx      # AlmaLinux, CentOS Stream

certbot --nginx -d example.ru -d www.example.ru

Для Apache це той самий шлях із python3-certbot-apache і прапорцем --apache. Certbot сам додає до конфігурації блок сертифіката та перенаправлення з HTTP на HTTPS.

Перевірте результат:

certbot certificates
curl -I https://example.ru

Автоматичне поновлення

Пакет встановлює системний таймер, який також відповідає за поновлення. Переконайтеся, що таймер активний, і запустіть тестове поновлення:

systemctl list-timers | grep certbot
certbot renew --dry-run

Пробний запуск обов'язковий. Він виявляє ситуацію, коли поновлення зламається через два місяці — наприклад, ви перейменували конфігурацію сайту й certbot більше не знає, куди покласти файл перевірки.

Коли порт 80 зайнятий

Якщо на порту 80 працює застосунок і ви не можете поставити туди вебсервер, скористайтеся окремим режимом:

certbot certonly --standalone --preferred-challenges http -d example.ru

Certbot на час перевірки підніме власний тимчасовий сервер. Для цього доведеться зупинити застосунок: --pre-hook і --post-hook можуть зробити це автоматично.

Після видачі сертифікати лежать у /etc/letsencrypt/live/example.ru/: fullchain.pem і privkey.pem.

Типові помилки

СимптомПричина
Timeout during connectПорт 80 заблокований фаєрволом або домен вказує на іншу машину
too many certificates already issuedВи вичерпали тижневий ліміт для домену — зачекайте або налагоджуйте з --staging
Сайт віддає старий сертифікат після видачіВи не перезавантажили вебсервер: systemctl reload nginx
Сертифікат прострочивсяТаймер вимкнено — перевірте systemctl enable --now certbot.timer

Каталог /etc/letsencrypt — частина ваших даних. Автоматичних резервних копій машини немає, тож додайте його до своєї резервної копії разом із конфігураціями вебсервера.