SSL Gratis di VPS dengan Certbot (Let's Encrypt)
Tidak perlu beli SSL: pasang HTTPS gratis di VPS Ubuntu + nginx dalam 10 menit, plus perpanjangan otomatis.
1. Siapkan syaratnya dulu
Tiga hal wajib sebelum mulai: (1) domain sudah mengarah ke IP VPS (cek: nslookup domainanda.id harus jawab IP VPS), (2) port 80 dan 443 terbuka di firewall, (3) nginx sudah jalan dan melayani domain itu via HTTP. Tanpa ketiganya, verifikasi akan gagal.
nslookup domainanda.id
sudo ufw allow 80,443/tcp
sudo systemctl is-active nginx # harus: active
2. Install Certbot
Di Ubuntu 22.04/24.04 cukup dari paket resmi. Plugin python3-certbot-nginx yang membuat Certbot bisa mengubah config nginx otomatis.
sudo apt update
sudo apt install -y certbot python3-certbot-nginx
certbot --version
3. Terbitkan & pasang sertifikat
Satu perintah ini memverifikasi domain (tantangan HTTP via port 80), menerbitkan sertifikat, lalu menuliskannya ke config nginx. Masukkan email untuk peringatan kedaluwarsa, setujui ketentuan, dan pilih redirect supaya semua HTTP dialihkan ke HTTPS.
sudo certbot --nginx -d domainanda.id -d www.domainanda.id
4. Cek hasilnya
Pastikan HTTPS menjawab 200 dan sertifikat tercatat dengan tanggal kedaluwarsa (±90 hari — normal untuk Let's Encrypt, bukan error).
curl -sI https://domainanda.id | head -n 3
sudo certbot certificates
5. Nyalakan perpanjangan otomatis
Sertifikat gratis berlaku 90 hari dan wajib diperpanjang otomatis. Paket Ubuntu sudah menyertakan timer systemd — pastikan aktif, lalu uji simulasinya (tidak mengubah apa pun).
sudo systemctl enable --now certbot.timer
sudo systemctl status certbot.timer --no-pager | head -n 5
sudo certbot renew --dry-run
6. Kalau gagal, cek 4 hal ini
DNS belum propagasi — tunggu 5–30 menit setelah ubah A record. Port 80 tertutup — verifikasi butuh port 80 dari internet, buka di firewall dan security group provider (AWS/Tencent/GCP). Punya AAAA (IPv6) tapi nginx tidak listen IPv6 — hapus AAAA atau tambahkan listen [::]:80. Rate limit — maksimal 50 sertifikat per domain per minggu; jangan tekan install berulang kali saat gagal, perbaiki dulu penyebabnya.
7. Kapan perlu SSL berbayar?
Untuk website, toko online, dan API biasa, Let's Encrypt gratis sudah setara dari sisi enkripsi. SSL berbayar baru dibutuhkan untuk validasi organisasi/EV (nama perusahaan di sertifikat), garansi asuransi, atau masa berlaku 1 tahun tanpa renewal. Wildcard (*.domainanda.id) pun bisa gratis via tantangan DNS (certbot --manual --preferred-challenges dns) bila DNS Anda mendukung API otomatis.