- Home »

Как защитить Nginx с помощью Let’s Encrypt на Ubuntu 24.04
В этой статье разберёмся, как быстро и надёжно защитить свой Nginx на свежей Ubuntu 24.04 с помощью бесплатных SSL-сертификатов от Let’s Encrypt. Почему это важно? Потому что шифрование трафика — уже не просто хорошая практика, а must-have для любого публичного сервера. Без HTTPS сегодня ни поисковики, ни браузеры не воспринимают сайт всерьёз: Google понижает в ранжировании, Chrome и Firefox пугают посетителей красными предупреждениями. А если вы работаете с личными данными или авторизацией — SSL просто обязателен. Let’s Encrypt — это быстрый, бесплатный и автоматизированный способ получить сертификат, а Ubuntu 24.04 и Nginx делают этот процесс максимально простым. В этой статье — не только пошаговая инструкция, но и разбор подводных камней, лайфхаки и сравнение с альтернативами.
Как работает связка Nginx + Let’s Encrypt?
Let’s Encrypt — это открытый центр сертификации, который выдаёт бесплатные SSL-сертификаты. Всё автоматизировано: вы доказываете, что владеете доменом, и получаете сертификат. Для автоматизации используется утилита Certbot — она сама генерирует ключи, отправляет запросы, проверяет домен и даже может сама прописать сертификаты в конфиг Nginx. Вся магия — в ACME-протоколе (Automatic Certificate Management Environment), который позволяет автоматизировать выпуск и продление сертификатов.
- Let’s Encrypt выдаёт сертификаты сроком на 90 дней (но продлевать их можно автоматически — и это реально удобно).
- Вся цепочка доверия поддерживается в современных браузерах и ОС.
- Certbot может работать в разных режимах: standalone (поднимает свой сервер), webroot (использует папку сайта), nginx (правит конфиг Nginx сам).
Как быстро и просто всё настроить?
Всё, что нужно — это сервер на Ubuntu 24.04 (VPS или выделенный, если ещё нет — заказать VPS или выделенный сервер), домен, и уже установленный Nginx. Дальше — дело техники.
- Убедитесь, что Nginx установлен и работает
sudo apt update
sudo apt install nginx
sudo systemctl status nginx
Проверьте, что сайт открывается по HTTP. - Откройте 80 и 443 порты в фаерволе
sudo ufw allow 'Nginx Full'
Если используете другой фаервол — откройте порты вручную. - Установите Certbot и плагин для Nginx
sudo apt install certbot python3-certbot-nginx
Certbot — официальный клиент Let’s Encrypt, плагин для Nginx позволяет автоматизировать настройку. - Получите сертификат
sudo certbot --nginx -d example.com -d www.example.com
Заменитеexample.com
на свой домен. Certbot сам найдёт конфиг Nginx, пропишет сертификаты и перезапустит сервер. - Проверьте автоматическое продление
sudo certbot renew --dry-run
Если всё ок — сертификаты будут продлеваться автоматически через systemd timer.
Всё! Теперь ваш сайт работает по HTTPS, сертификат бесплатный и будет обновляться автоматически.
Примеры, схемы, практические советы
Рассмотрим пару кейсов из жизни, чтобы понять, где могут быть грабли, а где — профит.
Кейс | Что пошло не так/хорошо | Рекомендация |
---|---|---|
Сайт на нестандартном порте (например, 8080) | Certbot не может пройти проверку — Let’s Encrypt всегда стучится на 80/443 | Сделайте временный редирект с 80 на нужный порт или используйте webroot-режим |
Несколько сайтов на одном сервере | Certbot сам найдёт все server_name в конфигах Nginx | Указывайте все домены через -d, или запускайте certbot для каждого сайта |
Сервер без публичного IP (за NAT, в локалке) | Let’s Encrypt не может проверить домен | Используйте DNS-валидацию (certbot-dns-plugins), но это сложнее |
Сайт на IPv6 | Let’s Encrypt поддерживает IPv6 | Убедитесь, что DNS AAAA-запись корректна и порт 80/443 открыт для IPv6 |
Сертификат не обновился автоматически | Сломался cron или systemd timer, или сайт был недоступен | Проверьте sudo certbot renew --dry-run и логи /var/log/letsencrypt/ |
Похожие решения, альтернативы и сравнение
Решение | Плюсы | Минусы | Где использовать |
---|---|---|---|
Let’s Encrypt + Certbot | Бесплатно, автоматизация, поддержка Nginx/Apache, простота | 90 дней срок, нужен публичный доступ к серверу | Почти везде, где нужен HTTPS |
ZeroSSL | Бесплатно, поддержка ACME, альтернатива Let’s Encrypt | Ограничения по количеству сертификатов, иногда требует регистрацию | Если Let’s Encrypt не работает |
Comodo, Sectigo и др. (платные CA) | Долгий срок (1-2 года), поддержка wildcard, расширенная валидация | Платно, ручная установка, нет автоматизации | Корпоративные сайты, где нужен EV/OV |
Self-signed сертификаты | Мгновенно, бесплатно | Браузеры не доверяют, warning для пользователей | Внутренние сервисы, dev/test |
Официальные ссылки:
Интересные факты и нестандартные способы использования
- Let’s Encrypt поддерживает wildcard-сертификаты (например,
*.example.com
), но для этого нужна DNS-валидация. Это удобно для SaaS и мультисайтов. - Certbot можно запускать из скриптов — например, при деплое нового сайта или CI/CD. Просто добавьте вызов certbot в ваш deploy.sh.
- Можно использовать Certbot для выпуска сертификатов не только для Nginx, но и для почтовых серверов (Postfix, Dovecot), FTP, XMPP и даже для VPN (OpenVPN, WireGuard — через tls-auth).
- Для автоматизации на кластерах (Kubernetes, Docker Swarm) есть специальные решения: cert-manager для Kubernetes, acme-companion для Docker.
- Можно использовать
acme.sh
— альтернативный легковесный ACME-клиент на bash, который не требует Python и работает даже на OpenWRT или старых VPS.
Новые возможности и автоматизация
С автоматическим SSL от Let’s Encrypt открываются крутые возможности:
- Автоматизация выпуска и продления сертификатов — забудьте про ручную возню и дедлайны.
- Массовое управление сертификатами для десятков и сотен сайтов на одном сервере.
- Интеграция с CI/CD: при деплое нового сайта сразу получаете HTTPS.
- Безопасные API и внутренние сервисы — можно быстро поднять защищённый endpoint для микросервисов.
- Скрипты для мониторинга: можно автоматически проверять срок действия сертификата и уведомлять в Telegram/Slack.
Выводы и рекомендации
Let’s Encrypt + Nginx на Ubuntu 24.04 — это современный стандарт для быстрого и безопасного запуска сайтов. Бесплатно, надёжно, автоматизировано. Если вы ещё не используете HTTPS — самое время начать: установка занимает 10 минут, а профит — огромный. Для большинства задач Certbot — оптимальный выбор, но если нужна гибкость или особые сценарии (wildcard, DNS-валидация, нестандартные порты) — смотрите в сторону acme.sh
или cert-manager для Kubernetes. Не забывайте про автоматическое продление и мониторинг — это спасёт от неприятных сюрпризов. В общем, если нужен быстрый старт — берите VPS (заказать VPS), ставьте Ubuntu 24.04, Nginx, Certbot — и вперёд, в светлое будущее с HTTPS!
В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.
Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.