- Home »

Использование standalone режима Certbot для получения SSL-сертификатов Let’s Encrypt на Ubuntu 24.04
Сегодня разбираемся с одной из самых частых задач в жизни любого, кто хоть раз поднимал сервер на Ubuntu: как получить бесплатный SSL-сертификат от Let’s Encrypt через Certbot в standalone-режиме. Почему это важно? Потому что SSL — это не только про зелёный замочек в браузере, но и про доверие, безопасность, SEO и вообще про то, чтобы ваши клиенты не плевались на “небезопасное соединение”. А Certbot в standalone-режиме — это быстрый способ получить сертификат, даже если у вас ещё нет настроенного веб-сервера или вы не хотите его останавливать надолго. В этой статье — только практика, никакой воды, только рабочие команды, реальные кейсы и советы, которые сэкономят вам часы жизни.
Как это работает?
Let’s Encrypt — это бесплатный центр сертификации, который выдаёт SSL-сертификаты, подтверждая, что вы действительно владеете доменом. Certbot — официальный клиент для работы с Let’s Encrypt. У него есть несколько режимов работы, но сегодня нас интересует standalone. В этом режиме Certbot сам поднимает временный HTTP-сервер на 80 порту, чтобы Let’s Encrypt мог проверить ваш домен. Это удобно, если у вас ещё нет веб-сервера или вы не хотите лезть в его конфиги.
- Плюсы: Не нужно ковырять nginx/apache, всё работает “из коробки”.
- Минусы: Порт 80 должен быть свободен. Если у вас уже что-то слушает 80 порт — придётся его остановить на время верификации.
Вся магия в том, что Certbot запускает мини-сервер, Let’s Encrypt стучится по HTTP на ваш домен, видит нужный challenge — и выдаёт сертификат. Всё просто, если знать нюансы.
Как быстро и просто всё настроить?
Показываю на примере Ubuntu 24.04. Всё, что ниже — проверено лично, работает на свежих VPS и dedicated (если что, VPS тут, dedicated тут).
- Обновляем систему и ставим Certbot:
sudo apt update
sudo apt install certbot
- Проверяем, что порт 80 свободен:
sudo ss -tlnp | grep :80
Если что-то слушает порт 80 (например, nginx или apache), временно останавливаем:
sudo systemctl stop nginx
# или
sudo systemctl stop apache2
- Получаем сертификат:
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 и радоваться жизни.
Примеры, схемы, практические советы
Кейс 1: Сервер только что поднят, веб-сервер ещё не установлен
- Идеальный случай для standalone: порт 80 свободен, сертификат получаем за 2 минуты.
- Дальше ставим nginx/apache и сразу указываем свежий сертификат.
Кейс 2: На сервере уже работает nginx на 80 порту
- Вариант 1: Остановить nginx на 30 секунд, получить сертификат, запустить обратно.
- Вариант 2: Использовать webroot-режим (но это уже другая история).
Кейс 3: Несколько доменов на одном сервере
- Можно указать все домены через
-d
(например,-d site1.com -d site2.com
). - Главное — чтобы DNS всех доменов указывал на этот сервер.
Кейс 4: Сертификат для нестандартного порта
- Let’s Encrypt всегда проверяет по 80 порту, даже если ваш сайт работает на 8080 или 8443.
- На время верификации порт 80 должен быть доступен снаружи.
Таблица: Сравнение режимов Certbot
Режим | Когда использовать | Плюсы | Минусы |
---|---|---|---|
standalone | Нет веб-сервера или можно остановить на время | Просто, быстро, не надо лезть в конфиги | Порт 80 должен быть свободен |
webroot | Веб-сервер уже работает | Не надо останавливать сервисы | Нужно знать корень сайта, прописывать пути |
nginx/apache plugin | Веб-сервер поддерживается Certbot | Автоматически прописывает сертификаты | Не всегда работает с кастомными конфигациями |
Похожие решения, программы и утилиты
- acme.sh — альтернатива на bash, лёгкая и гибкая, поддерживает DNS-валидацию, работает без root.
- Get HTTPS for free — ручной способ через браузер, для параноиков.
- lego — клиент на Go, часто используется в docker-окружениях.
Статистика и сравнение
- Let’s Encrypt — лидер по количеству выданных SSL-сертификатов в мире (более 300 млн доменов).
- Certbot — официальный клиент, поддерживается Electronic Frontier Foundation (официальный сайт).
- acme.sh — популярен среди DevOps за счёт простоты автоматизации и поддержки wildcard-сертификатов через DNS.
Интересные факты и нестандартные способы использования
- Можно получить сертификат для внутреннего сервиса, если домен резолвится только внутри вашей сети (через DNS-валидацию).
- Certbot можно запускать из cron для автоматического продления сертификатов (
certbot renew --standalone
). - С помощью Certbot можно получить сертификаты для IoT-устройств, если они доступны по HTTP извне.
- Можно использовать standalone-режим для быстрой миграции сертификатов между серверами (например, подняли новый сервер, получили сертификат, переехали).
Автоматизация и скрипты: новые возможности
Certbot в standalone-режиме отлично ложится в автоматизацию. Например, можно написать скрипт, который:
- Останавливает nginx
- Получает/продлевает сертификат
- Запускает nginx обратно
- Отправляет уведомление в Telegram или Slack
Пример простого bash-скрипта для автоматического продления:
#!/bin/bash
systemctl stop nginx
certbot renew --standalone --pre-hook "systemctl stop nginx" --post-hook "systemctl start nginx"
systemctl start nginx
Можно добавить этот скрипт в cron раз в месяц — и забыть о ручном продлении сертификатов.
Вывод — заключение и рекомендации
Certbot в standalone-режиме — это must-have инструмент для любого, кто хочет быстро и без лишних танцев получить бесплатный SSL-сертификат на Ubuntu 24.04. Особенно если вы только что подняли сервер, ещё не настроили веб-сервер или не хотите лезть в его конфиги. Это решение простое, надёжное и отлично подходит для автоматизации. Если у вас сложная инфраструктура — посмотрите в сторону acme.sh или DNS-валидации, но для 90% задач standalone-режим — идеальный выбор.
Рекомендую: используйте Certbot standalone для первичной настройки, автоматизируйте продление через cron, и не забывайте проверять, что порт 80 доступен снаружи. Если нужен VPS или dedicated для экспериментов — VPS тут, dedicated тут. SSL — это не боль, если знаешь правильные инструменты!
Официальные ссылки для самостоятельного изучения:
В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.
Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.