Caddy: situs dengan sertifikat langsung siap pakai
Web server yang memperoleh dan memperbarui sertifikat HTTPS sendiri. Instalasi di VPS, Caddyfile minimal, dan migrasi dari Nginx.
Diperbarui 23 Agustus 2026
Caddy melakukan hal yang sama seperti Nginx, tetapi menerbitkan dan memperbarui sertifikat Let's Encrypt sendiri. Konfigurasi satu situs cukup tiga baris, jadi untuk proyek pertama di VDS ini adalah jalur tercepat menuju HTTPS yang berfungsi.
Instalasi
Debian dan Ubuntu — dari repositori resmi:
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 dan CentOS Stream:
dnf install -y 'dnf-command(copr)'
dnf copr enable -y @caddy/caddy
dnf install -y caddy && systemctl enable --now caddy
Situs pertama Anda
Seluruh konfigurasi berada di /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
Beberapa detik setelah permintaan pertama, situs terbuka di https://example.ru. Anda tidak perlu menjalankan apa pun lagi: Caddy mengambil sertifikatnya sendiri dan akan memperbaruinya secara otomatis.
Proxying aplikasi
Jika Anda memiliki layanan Node.js atau Python pada port lokal, konfigurasinya seperti ini:
api.example.ru {
reverse_proxy 127.0.0.1:3000
}
Caddy menambahkan header X-Forwarded-For dan X-Forwarded-Proto sendiri. Untuk penjelasan lebih lanjut tentang skema ini, lihat reverse proxy.
Beberapa situs cukup berupa beberapa blok dalam file yang sama, lihat beberapa situs di satu mesin.
Yang perlu diperiksa sebelumnya
- Record A domain mengarah ke alamat mesin dari "Overview" panel
/hosting/vds/m/<id>; - port 80 dan 443 terbuka di firewall mesin dan tidak dipakai oleh Nginx atau Apache;
- domain benar-benar ter-resolve:
dig +short example.ru.
Jika poin pertama belum dilakukan, penerbitan sertifikat akan gagal: Let's Encrypt harus menjangkau mesin Anda melalui nama domain.
Kesalahan umum
| Gejala | Penyebab |
|---|---|
could not get certificate | Domain tidak mengarah ke mesin, atau port 80 tertutup |
address already in use | Nginx atau Apache sedang berjalan — hentikan salah satunya |
| Situs hanya terbuka melalui HTTP | Caddyfile mencantumkan :80 atau http:// sebelum nama |
| Terlalu banyak percobaan penerbitan | Batas Let's Encrypt — debug dengan tls internal |
Log: journalctl -u caddy -f.
Caddy menyimpan sertifikat di
/var/lib/caddy/.local/share/caddy. Saat Anda menginstal ulang sistem di tab "Access", salin direktori ini, jika tidak penerbitan akan dimulai dari awal setelah instalasi ulang.