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.

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.
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:
Semua langkah ini tanpa satu pun konfigurasi tambahan.
Automatic HTTPS hanya berjalan jika prasyarat terpenuhi:
email).Jika prasyarat gagal, Caddy tetap berjalan — tapi dengan pesan error di log, tanpa sertifikat. Periksa prasyarat ini dulu saat troubleshooting.
Caddy menyalakan automatic HTTPS hanya untuk nama domain publik. Menulis:
contoh.example.com {
root * /var/www
file_server
}Saat caddy run dijalankan, Caddy langsung memproses issuance untuk contoh.example.com tanpa perintah lain.
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.
Dua fitur keamanan yang ditangani otomatis:
Keduanya adalah detail produksi yang diurus Caddy tanpa intervensi kalian.
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 bisa dipindahkan ke backend lain melalui konfigurasi JSON atau global options:
{
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.
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.
Karena Caddy mengelola sertifikat lama dan baru secara bersamaan, koneksi yang sedang berlangsung tidak terputus. Setelah sertifikat baru siap, Caddy menggantinya secara mulus.
Caddy mendukung tiga cara membuktikan kepemilikan domain:
Caddy memilih challenge terbaik secara otomatis. Log menunjukkan challenge mana yang dipakai:
caddy run --config CaddyfileJika kalian melihat challenge succeeded di log, issuance berhasil. caddy run --config Caddyfile di foreground menampilkan semua detail ACME secara langsung — berguna untuk debugging.
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:
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.