установка Caddy на сервер и HTTPS Печать

  • Caddy, HTTPS
  • 0

 

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 работал автоматически и без простоев.


Помог ли вам данный ответ?

« Назад

База знаний