Skip to content
VDS · Sajtovi i veb serveri

Caddy: sajt sa sertifikatom iz kutije

Web server koji sam pribavlja i obnavlja HTTPS sertifikate. Instalacija na VPS, minimalni Caddyfile i prelazak sa Nginx-a.

Ažurirano 23. avgust 2026.

Caddy radi isto što i Nginx, ali sam izdaje i obnavlja Let's Encrypt sertifikate. Konfiguracija sajta staje u tri reda, pa je za prvi projekat na VDS-u najkraći put do ispravnog HTTPS-a.

Instalacija

Debian i Ubuntu — iz zvaničnog repozitorijuma:

apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' \
  | gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' \
  > /etc/apt/sources.list.d/caddy-stable.list
apt update && apt install -y caddy

AlmaLinux i CentOS Stream:

dnf install -y 'dnf-command(copr)'
dnf copr enable -y @caddy/caddy
dnf install -y caddy && systemctl enable --now caddy

Tvoj prvi sajt

Cela konfiguracija se nalazi u /etc/caddy/Caddyfile:

example.ru {
    root * /var/www/example.ru
    file_server
    encode gzip zstd
}
mkdir -p /var/www/example.ru
echo '<h1>Works</h1>' > /var/www/example.ru/index.html
caddy validate --config /etc/caddy/Caddyfile
systemctl reload caddy

Nekoliko sekundi posle prvog zahteva, sajt se otvara na https://example.ru. Ne moraš ništa drugo da pokrećeš: Caddy je sam preuzeo sertifikat i automatski će ga obnavljati.

Prosleđivanje aplikacije

Ako imaš Node.js ili Python servis na lokalnom portu, konfiguracija izgleda ovako:

api.example.ru {
    reverse_proxy 127.0.0.1:3000
}

Caddy sam dodaje zaglavlja X-Forwarded-For i X-Forwarded-Proto. Više o šemi pogledaj u obrnuti proksi.

Više sajtova su samo više blokova u istom fajlu, pogledaj više sajtova na jednoj mašini.

Šta da proveriš unapred

  • A zapis domena pokazuje na adresu mašine iz „Pregleda“ panela /hosting/vds/m/<id>;
  • portovi 80 i 443 su otvoreni u firewall-u mašine i ne zauzima ih Nginx ili Apache;
  • domen se zaista razrešava: dig +short example.ru.

Ako prva stavka nije urađena, izdavanje sertifikata će pasti: Let's Encrypt mora da dođe do tvoje mašine preko imena domena.

Česte greške

SimptomUzrok
could not get certificateDomen ne pokazuje na mašinu ili je port 80 zatvoren
address already in useRadi Nginx ili Apache — zaustavi jedan od njih
Sajt se otvara samo preko HTTP-aU Caddyfile-u je navedeno :80 ili http:// pre imena
Previše pokušaja izdavanjaLet's Encrypt ograničenja — debaguj sa tls internal

Logovi: journalctl -u caddy -f.

Caddy čuva sertifikate u /var/lib/caddy/.local/share/caddy. Kada reinstaliraš sistem na kartici „Pristup“, kopiraj ovaj direktorijum, inače će izdavanje početi ispočetka posle reinstalacije.