Caddy любят за простую вещь: ты поднимаешь сайт, а HTTPS появляется почти автоматически. Без плясок с Certbot, без ручного редактирования цепочек сертификатов, без “а почему не продлилось”. Но чтобы это работало стабильно, нужно один раз правильно поставить Caddy, открыть нужные порты и написать нормальный Caddyfile. Дальше он действительно живет сам. Caddy это веб-сервер и обратный прокси. Он умеет сам получать и продлевать TLS-сертификаты от Let’s Encrypt, делает редирект на HTTPS, поддерживает HTTP/2 и HTTP/3, легко проксирует приложения и не превращает конфиг в роман на 200 строк. Для типичного VPS это означает меньше рутины и меньше точек отказа.
Подготовка сервера
Перед установкой проверь, что домен уже указывает на IP сервера. Если DNS смотрит в другое место, Caddy не сможет выпустить сертификат.
getent hosts example.com
И сразу убедись, что порты 80 и 443 доступны снаружи. Это критично для выпуска сертификатов.
sudo ss -lntp | grep -E ':(80|443)\s' || true
Если у тебя уже стоит Nginx/Apache и они заняли 80/443, останови их, иначе Caddy просто не встанет:
sudo systemctl stop nginx 2>/dev/null || true
sudo systemctl disable nginx 2>/dev/null || true
sudo systemctl stop apache2 2>/dev/null || true
sudo systemctl disable apache2 2>/dev/null || true
Установка Caddy на Debian 12 и Ubuntu 24.04
Самый правильный путь это официальный репозиторий Caddy. Он ставит актуальную версию и нормально обновляется.
sudo apt update
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install -y caddy
sudo systemctl enable --now caddy
caddy version
Проверка, что сервис запущен:
sudo systemctl status caddy --no-pager
Самый простой сайт с автоматическим HTTPS
Открой Caddyfile и пропиши домен. Это минимум, который уже даст рабочий сайт и сертификат.
sudo nano /etc/caddy/Caddyfile
Пример для статики в /var/www/site:
example.com {
root * /var/www/site
file_server
}
Создай тестовую страницу:
sudo mkdir -p /var/www/site
echo "OK" | sudo tee /var/www/site/index.html >/dev/null
sudo caddy validate --config /etc/caddy/Caddyfile
sudo systemctl reload caddy
Проверь с сервера:
curl -I http://example.com
curl -I https://example.com
Если HTTPS отвечает, значит сертификат выпущен и всё ок.
Caddy как обратный прокси для приложения
Это самый частый кейс на VPS: приложение слушает на localhost:3000, а снаружи нужен нормальный домен и TLS. В Caddyfile:
app.example.com {
reverse_proxy 127.0.0.1:3000
}
Проверка:
sudo caddy validate --config /etc/caddy/Caddyfile
sudo systemctl reload caddy
curl -I https://app.example.com
Как убедиться, что сертификаты продляются
Caddy делает это сам, но лучше один раз проверить логи, чтобы не гадать через два месяца.
sudo journalctl -u caddy --no-pager | tail -n 120
И посмотри, что домен реально обслуживается по 443:
sudo ss -lntp | grep -E ':(80|443)\s'
Типовые ошибки и быстрые фиксы
Если Caddy не выпускает сертификат, чаще всего виноват DNS или закрыт порт 80. Проверь, что домен указывает на твой сервер и что никто другой не слушает 80/443.
Если видишь ошибку “address already in use”, значит на портах уже сидит другой веб-сервер. Останови его и перезапусти Caddy:
sudo systemctl restart caddy
Если ты проксируешь приложение и получаешь 502, проблема обычно не в Caddy, а в том, что приложение не поднято или слушает не там. Проверь:
sudo ss -lntp | grep ':3000' || true
curl -I http://127.0.0.1:3000 || true
Caddy особенно хорош, когда у тебя несколько доменов и сервисов, которые нужно быстро поднять и не возвращаться к сертификатам каждую квартальную “дату истечения”. На HSTQ такой сценарий встречается постоянно: панели, API, личные кабинеты, прокси, лендинги. Мы можем поставить Caddy, настроить проксирование под твой стек, закрыть лишние порты, проверить выпуск и автопродление сертификатов и оставить конфиг, который легко поддерживать.
Оформите услугу на сайте hstq.net, и мы поможем вам установить Caddy на VPS, настроить домены и обратный прокси и сделать так, чтобы HTTPS работал автоматически и без простоев.