- Home »

Использование standalone режима Certbot для получения SSL-сертификатов Let’s Encrypt на Ubuntu 24.04
В этом посте разберёмся, как получить бесплатный SSL-сертификат от Let’s Encrypt на свежей Ubuntu 24.04, используя Certbot в standalone-режиме. Почему это важно? Потому что SSL — это уже не просто «желательно», а must-have для любого сайта, API, панели управления или даже собственного домашнего сервера. Без HTTPS сегодня никуда: браузеры ругаются, поисковики занижают рейтинг, пользователи не доверяют. А Let’s Encrypt — это быстрый, бесплатный и автоматизированный способ получить сертификат, который признают все современные браузеры. Но вот нюанс: не всегда удобно или возможно интегрировать Certbot с веб-сервером (nginx, apache и т.д.), особенно если сервер только разворачивается, или если у вас кастомный софт, или вообще нет веб-сервера. Тут и приходит на помощь standalone-режим Certbot. В этой статье — как это работает, как быстро всё настроить, какие есть подводные камни, и как автоматизировать процесс. Всё с примерами, кейсами и лайфхаками.
Как работает standalone-режим Certbot?
Certbot — это официальный клиент для работы с Let’s Encrypt. Обычно он интегрируется с веб-сервером (nginx, apache), чтобы автоматически подтверждать владение доменом и устанавливать сертификаты. Но в standalone-режиме Certbot сам поднимает временный HTTP-сервер на 80 порту, чтобы принять запрос от Let’s Encrypt и доказать, что вы действительно управляете этим доменом. Это удобно, если:
- Веб-сервер ещё не установлен или не запущен
- Веб-сервер не поддерживается Certbot’ом напрямую
- Вы хотите автоматизировать процесс в скриптах, CI/CD, Ansible и т.д.
- Нужно получить сертификат для нестандартного приложения (почтовый сервер, API, IoT-устройство)
Вся магия в том, что Certbot временно занимает порт 80, принимает challenge от Let’s Encrypt, и после этого освобождает порт. Всё просто, но есть нюансы: если порт 80 уже занят (например, nginx’ом), Certbot не сможет стартовать. Придётся временно остановить веб-сервер или использовать другой способ (например, DNS challenge, но это отдельная история).
Быстрая настройка: пошаговая инструкция
Давайте по-честному: никто не любит читать километровые мануалы. Вот минимальный набор шагов, чтобы получить сертификат в standalone-режиме на Ubuntu 24.04. Всё проверено на реальных серверах.
-
Убедитесь, что порт 80 свободен.
Если у вас уже крутится nginx, apache или что-то ещё на 80 порту — остановите это на время получения сертификата. Проверить, что порт свободен:
sudo ss -tlnp | grep :80
Если что-то найдено — остановите сервис:
sudo systemctl stop nginx
# или
sudo systemctl stop apache2
-
Установите Certbot.
На Ubuntu 24.04 это делается одной командой:
sudo apt update
sudo apt install certbot
Официальная инструкция Certbot -
Запустите Certbot в standalone-режиме.
Самая простая команда:
sudo certbot certonly --standalone -d example.com -d www.example.com
Certbot спросит ваш email (для уведомлений о продлении), примет лицензию и попытается получить сертификат. Если всё ок — сертификаты появятся в/etc/letsencrypt/live/example.com/
. -
Запустите обратно ваш веб-сервер.
sudo systemctl start nginx
# или
sudo systemctl start apache2
Теперь можно подключать сертификаты к вашему серверу.
Всё, сертификат получен! Можно подключать его к nginx, apache, postfix, dovecot, haproxy, minio, или чему угодно.
Практические советы, схемы и кейсы
Вот несколько реальных сценариев, где standalone-режим — это прямо спасение:
Кейс | Плюсы | Минусы | Рекомендации |
---|---|---|---|
Сервер только что установлен, веб-сервер ещё не настроен | Можно сразу получить сертификат, не заморачиваясь с конфигами nginx/apache | Порт 80 должен быть свободен | Используйте standalone, потом подключайте сертификаты к веб-серверу |
Получение сертификата для нестандартного приложения (например, почтовый сервер) | Не нужен веб-сервер, Certbot сам всё сделает | В момент запроса порт 80 должен быть свободен | Остановите все сервисы на 80 порту на время запроса |
Автоматизация в CI/CD, Ansible, bash-скриптах | Можно полностью автоматизировать процесс получения и продления сертификатов | Порт 80 должен быть свободен на момент запуска скрипта | Добавьте остановку/запуск веб-сервера в скрипт |
Сервер с несколькими сайтами (виртуальный хостинг) | Можно получить сертификаты для каждого домена отдельно | Придётся останавливать веб-сервер для каждого запроса | Рассмотрите webroot-режим или DNS challenge для автоматизации |
Примеры команд для автоматизации
Если хочется всё автоматизировать (например, для продления сертификатов через cron), вот пример bash-скрипта:
#!/bin/bash
systemctl stop nginx
certbot certonly --standalone -d example.com -d www.example.com --non-interactive --agree-tos -m [email protected]
systemctl start nginx
Добавьте этот скрипт в cron (например, раз в 2 месяца), и забудьте о ручном продлении.
Похожие решения и альтернативы
- acme.sh — лёгкий bash-клиент для Let’s Encrypt и других ACME CA. Работает без python, поддерживает standalone, webroot, dns. acme.sh на GitHub
- lego — ACME-клиент на Go, часто используется в docker-окружениях и Kubernetes. lego на GitHub
- dehydrated — минималистичный bash-клиент, хорош для автоматизации. dehydrated на GitHub
Но Certbot — самый популярный и поддерживаемый, особенно на Ubuntu.
Статистика и сравнение с другими способами
Метод | Плюсы | Минусы | Когда использовать |
---|---|---|---|
standalone | Не нужен веб-сервер, просто и быстро | Порт 80 должен быть свободен | Первичная настройка, нестандартные приложения, автоматизация |
webroot | Не нужно останавливать веб-сервер | Нужно настраивать webroot, иногда сложно с виртуальными хостами | Много сайтов на одном сервере, постоянный веб-сервер |
dns-01 challenge | Не нужен доступ к портам, можно для wildcard сертификатов (*.example.com) | Нужно управлять DNS, не все провайдеры поддерживают API | Wildcard, автоматизация для сложных инфраструктур |
Интересные факты и нестандартные применения
- Можно получить сертификат для локального сервера, если домен прописан в DNS и доступен снаружи
- Certbot поддерживает pre/post hooks — можно автоматом перезапускать сервисы после обновления сертификата
- Можно использовать standalone-режим для получения сертификатов для IoT-устройств, которые не умеют работать с веб-серверами
- Сертификаты Let’s Encrypt действуют 90 дней — это не баг, а фича: больше безопасности, меньше шансов забыть об обновлении
- Можно получить сертификат для нескольких доменов и поддоменов одной командой
Автоматизация и новые возможности
Standalone-режим отлично ложится в автоматизацию: скрипты, Ansible, CI/CD пайплайны. Можно:
- Автоматически получать и продлевать сертификаты для новых доменов
- Встраивать получение сертификата в процесс деплоя (например, при развёртывании нового сервиса)
- Использовать Certbot в docker-контейнерах (например, для временного получения сертификата и передачи его в основной контейнер)
- Сделать свой мини-сервис для выдачи сертификатов внутри компании
Для автоматизации используйте флаги --non-interactive
, --agree-tos
, -m email
— это позволит запускать Certbot без ручного ввода.
Выводы и рекомендации
Standalone-режим Certbot — это быстрый, надёжный и универсальный способ получить бесплатный SSL-сертификат от Let’s Encrypt на Ubuntu 24.04. Он идеально подходит для:
- Первичной настройки серверов
- Автоматизации и скриптов
- Получения сертификатов для нестандартных приложений
- Тех случаев, когда веб-сервер ещё не настроен или не нужен
Главное — убедитесь, что порт 80 свободен на момент запроса. Если у вас сложная инфраструктура или много сайтов — рассмотрите webroot или DNS challenge. Для автоматизации — используйте скрипты и cron, не забывайте про автоматический перезапуск сервисов после обновления сертификатов.
Если вы только выбираете сервер для своих проектов — посмотрите VPS или выделенные серверы на этом блоге — там можно быстро развернуть Ubuntu 24.04 и сразу настроить SSL по этой инструкции.
SSL — это не боль, если использовать правильные инструменты. Certbot в standalone-режиме — один из них. Удачной автоматизации и надёжных сертификатов!
В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.
Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.