Sertifikat Let's Encrypt gratis
Cara menerbitkan dan memperbarui sertifikat HTTPS secara otomatis di VPS dengan certbot, termasuk kasus ketika port 80 sudah digunakan.
Diperbarui 23 Agustus 2026
Anda memerlukan sertifikat agar browser tidak menampilkan “Not secure” dan formulir serta pembayaran dapat berfungsi sama sekali. Let's Encrypt menerbitkannya secara gratis selama 90 hari dengan perpanjangan otomatis.
Persiapan
Periksa tiga hal, atau penerbitan akan gagal:
dig +short example.ru # should return your machine's address
ss -tulpn | grep -E ':80|:443'
- record A domain mengarah ke alamat pada tab “Overview” di panel pada
/hosting/vds/m/<id>; - port 80 dapat dijangkau dari luar — Let's Encrypt menggunakannya untuk memverifikasi kepemilikan domain;
- web server berjalan: Nginx atau Apache.
Jika Anda menggunakan Caddy, Anda tidak perlu melakukan apa pun — Caddy menerbitkan sertifikat sendiri.
Penerbitan
apt install -y certbot python3-certbot-nginx # Debian, Ubuntu
dnf install -y certbot python3-certbot-nginx # AlmaLinux, CentOS Stream
certbot --nginx -d example.ru -d www.example.ru
Untuk Apache, jalurnya sama dengan python3-certbot-apache dan flag --apache. Certbot menambahkan blok sertifikat dan pengalihan HTTP ke HTTPS ke konfigurasi itu sendiri.
Periksa hasilnya:
certbot certificates
curl -I https://example.ru
Perpanjangan otomatis
Paket ini memasang system timer, yang juga menangani perpanjangan. Pastikan timer aktif dan jalankan uji perpanjangan:
systemctl list-timers | grep certbot
certbot renew --dry-run
Dry run wajib dilakukan. Ini menangkap situasi ketika perpanjangan akan gagal dua bulan dari sekarang — misalnya, Anda mengganti nama konfigurasi situs dan certbot tidak lagi tahu di mana harus meletakkan file verifikasi.
Ketika port 80 terpakai
Jika ada aplikasi yang berjalan di port 80 dan Anda tidak bisa menempatkan web server di sana, gunakan mode terpisah:
certbot certonly --standalone --preferred-challenges http -d example.ru
Certbot akan menjalankan server sementaranya sendiri selama pemeriksaan berlangsung. Untuk itu, Anda harus menghentikan aplikasi: --pre-hook dan --post-hook dapat melakukannya secara otomatis.
Setelah penerbitan, sertifikat berada di /etc/letsencrypt/live/example.ru/: fullchain.pem dan privkey.pem.
Kesalahan umum
| Gejala | Penyebab |
|---|---|
Timeout during connect | Port 80 diblokir oleh firewall, atau domain mengarah ke mesin lain |
too many certificates already issued | Anda telah mencapai batas mingguan untuk domain tersebut — tunggu atau debug dengan --staging |
| Situs menyajikan sertifikat lama setelah penerbitan | Anda tidak memuat ulang web server: systemctl reload nginx |
| Sertifikat telah kedaluwarsa | Timer dinonaktifkan — periksa systemctl enable --now certbot.timer |
Direktori
/etc/letsencryptadalah bagian dari data Anda. Tidak ada pencadangan otomatis untuk mesin ini, jadi sertakan direktori tersebut dalam pencadangan Anda bersama konfigurasi web server.