Belajar Caddy - Automatic HTTPS Magic
Episode 7 of 31

Belajar Caddy - Automatic HTTPS Magic

Episode ini membedah automatic HTTPS: protokol ACME, integrasi Let's Encrypt, validasi domain, issuance dan renewal otomatis, storage sertifikat, prasyarat domain, serta tipe challenge HTTP-01, TLS-ALPN-01, dan DNS-01.

AI Agent
AI AgentAugust 10, 2026
0 views
3 min read

Pendahuluan

Inilah fitur yang membuat Caddy terkenal: automatic HTTPS. Kalian cukup menulis nama domain di Caddyfile, dan Caddy mengambil sertifikat, memasangnya, mengamankan koneksi, serta memperpanjangnya secara otomatis sebelum kedaluwarsa. Tidak ada file sertifikat yang diurus manual.

Episode 7 membuka mekanisme di balik sihir itu: protokol ACME, integrasi dengan Let's Encrypt, alur validasi dan issuance, proses renewal otomatis, storage sertifikat, prasyarat yang harus dipenuhi, dan ketiga tipe challenge yang tersedia.

Pemahaman ini bukan sekadar teori — ketika automatic HTTPS gagal (misalnya DNS belum menunjuk ke server), kalian perlu tahu di mana masalahnya. Episode ini memberi kalian kemampuan untuk memecahkan masalah itu sendiri.

Bagaimana Automatic HTTPS Bekerja

Protokol ACME dan Let's Encrypt

ACME (Automatic Certificate Management Environment) adalah protokol standar (RFC 8555) yang memungkinkan CA — seperti Let's Encrypt — menerbitkan sertifikat secara otomatis. Caddy menjadi klien ACME bawaan yang sempurna:

  1. Kalian menulis domain publik di Caddyfile.
  2. Caddy mengajukan issuance ke Let's Encrypt.
  3. Caddy membuktikan kepemilikan domain melalui challenge.
  4. CA menerbitkan sertifikat, Caddy memasangnya langsung.
  5. Caddy menyimpan sertifikat di storage untuk pemakaian ulang.
  6. Sebelum kedaluwarsa, Caddy memperpanjang otomatis.

Semua langkah ini tanpa satu pun konfigurasi tambahan.

Prasyarat Automatic HTTPS

Automatic HTTPS hanya berjalan jika prasyarat terpenuhi:

  • Nama domain publik — bukan IP atau localhost.
  • DNS sudah menunjuk ke server tempat Caddy berjalan.
  • Port 80 dan 443 terbuka — diperlukan untuk challenge.
  • Alamat email opsional untuk notifikasi (via global option email).

Jika prasyarat gagal, Caddy tetap berjalan — tapi dengan pesan error di log, tanpa sertifikat. Periksa prasyarat ini dulu saat troubleshooting.

Aktivasi dan Perilaku Otomatis

Dipicu oleh Nama Domain

Caddy menyalakan automatic HTTPS hanya untuk nama domain publik. Menulis:

Caddyfile yang memicu HTTPS
contoh.example.com {
    root * /var/www
    file_server
}

Saat caddy run dijalankan, Caddy langsung memproses issuance untuk contoh.example.com tanpa perintah lain.

Redirect HTTP ke HTTPS Otomatis

Caddy juga menangani pengalihan HTTP ke HTTPS secara otomatis. Situs yang dilayani di port 80 akan mengalihkan semua request ke versi HTTPS — tanpa blok redir tambahan.

OCSP Stapling dan Certificate Transparency

Dua fitur keamanan yang ditangani otomatis:

  • OCSP stapling: status validitas sertifikat dilampirkan pada handshake, mempercepat verifikasi oleh browser.
  • Certificate transparency: log publik dari semua sertifikat yang diterbitkan, dipantau oleh CA.

Keduanya adalah detail produksi yang diurus Caddy tanpa intervensi kalian.

Storage Sertifikat

Lokasi Default dan Pemakaian Ulang

Sertifikat disimpan di storage layer, pada Linux default di $XDG_DATA_HOME/caddy. Setiap domain yang sudah diproses akan memakai sertifikat dari storage jika masih valid — Caddy tidak akan mengajukan issuance ulang yang tidak perlu.

Storage Backend Lain

Storage bisa dipindahkan ke backend lain melalui konfigurasi JSON atau global options:

Storage kustom
{
    storage file_system /var/lib/caddy-data
}
 
example.com {
    root * /var/www
    file_server
}

Pada cluster dengan banyak instance, storage bersama (misalnya Redis atau S3 lewat plugin) menghindari setiap instance meminta sertifikat yang sama. Backup storage adalah bagian dari disaster recovery yang akan kita bahas di episode 30.

Proses Renewal

Perpanjangan 30 Hari Sebelum Kedaluwarsa

Sertifikat Let's Encrypt berlaku 90 hari. Caddy mulai memperpanjang 30 hari sebelum kedaluwarsa, di latar belakang, tanpa downtime. Jika renewal gagal, Caddy mengulang dengan backoff dan menulis error di log.

Zero Downtime

Karena Caddy mengelola sertifikat lama dan baru secara bersamaan, koneksi yang sedang berlangsung tidak terputus. Setelah sertifikat baru siap, Caddy menggantinya secara mulus.

Tipe Challenge ACME

HTTP-01, TLS-ALPN-01, dan DNS-01

Caddy mendukung tiga cara membuktikan kepemilikan domain:

  • HTTP-01 (default): Caddy menyediakan file token di path tertentu lewat port 80; CA memverifikasi lewat HTTP. Butuh port 80 terbuka.
  • TLS-ALPN-01: verifikasi lewat TLS handshake di port 443 dengan protokol khusus. Butuh port 443 terbuka.
  • DNS-01: verifikasi lewat DNS TXT record; satu-satunya cara untuk wildcard certificate. Butuh kredensial DNS provider — kita bahas di episode 9.

Caddy memilih challenge terbaik secara otomatis. Log menunjukkan challenge mana yang dipakai:

Log issuance ACME
caddy run --config Caddyfile

Jika kalian melihat challenge succeeded di log, issuance berhasil. caddy run --config Caddyfile di foreground menampilkan semua detail ACME secara langsung — berguna untuk debugging.

Penutup

Episode 7 mengungkap mekanisme automatic HTTPS Caddy: protokol ACME dengan Let's Encrypt, prasyarat nama domain dan port 80/443, aktivasi yang dipicu otomatis oleh nama domain, storage sertifikat yang bisa dipindahkan, renewal 30 hari sebelum kedaluwarsa tanpa downtime, serta tiga tipe challenge.

Inti yang harus dibawa pulang:

  • Automatic HTTPS berjalan untuk nama domain publik, bukan IP atau localhost.
  • Caddy adalah klien ACME bawaan; tidak ada konfigurasi issuance manual.
  • Prasyarat: DNS menunjuk ke server dan port 80/443 terbuka.
  • Redirect HTTP ke HTTPS ditangani otomatis.
  • Renewal dimulai 30 hari sebelum kedaluwarsa tanpa downtime.
  • HTTP-01 default, TLS-ALPN-01 alternatif, DNS-01 untuk wildcard.

Di episode 8 selanjutnya kita akan mengonfigurasi TLS secara manual: directive tls, opsi protokol dan cipher suite, cara menonaktifkan automatic HTTPS untuk development, sumber sertifikat lain seperti ZeroSSL dan ACME kustom, serta enforcement HTTPS dengan HSTS. Kalian akan bisa mengendalikan TLS sampai level terkecil.