Kembali ke Panduan Nginx

Gembok HTTPS gratis — ada gambar tiap langkah

Pasang HTTPS gratis dengan Let's Encrypt

Website-mu masih http://dan ditandai "Not Secure" oleh browser? Di panduan ini kamu akan memasang sertifikat SSL gratis dari Let's Encrypt memakai Certbot. Hasilnya: alamat berubah jadi https:// dengan ikon gembok, data pengunjung terenkripsi, dan sertifikatnya diperpanjang otomatis selamanya. Cukup beberapa perintah.

Gembok HTTPS

Browser percaya, tidak ada lagi label "Not Secure".

Gratis & resmi

Let’s Encrypt diakui semua browser, tanpa biaya.

Perpanjang sendiri

Certbot memperbarui sertifikat otomatis sebelum kedaluwarsa.

Panduan ini lanjutan. Kamu sebaiknya sudah punya domain yang tampil lewat http:// dengan Nginx. Kalau belum, ikuti dulu panduan Nginx reverse proxy. Certbot bekerja paling mulus di atas Nginx yang sudah jalan.
1
Pahami dulu

Kenapa website wajib HTTPS?

Tanpa HTTPS, data yang dikirim antara pengunjung dan website-mu melintas dalam teks terbuka — siapa pun di jaringan yang sama (mis. WiFi kafe) bisa mengintipnya. Browser modern menandai situs http:// dengan label menakutkan "Not Secure" yang membuat pengunjung kabur.

Dengan HTTPS, semua data terenkripsi, muncul ikon gembok, dan Google pun lebih menyukai situs ber-HTTPS di hasil pencarian. Dulu sertifikat SSL mahal; sekarang Let's Encrypt memberikannya gratis.

SEBELUM

⚠ Not Secure | http://app.domainku.com

Data terbuka, pengunjung ragu, peringkat Google turun.

SESUDAH

🔒 https://app.domainku.com

Data terenkripsi, gembok aman, dipercaya pengunjung & Google.

2
Konsep

Cara kerja Let's Encrypt & Certbot

Let's Encrypt adalah lembaga penerbit sertifikat gratis. Certbot adalah robot kecil di server-mu yang mengurus semuanya: meminta sertifikat, membuktikan bahwa kamu benar pemilik domain, lalu memasangnya ke Nginx.

Pembuktiannya otomatis: Certbot menaruh sebuah file rahasia kecil di situsmu, lalu Let's Encrypt mengeceknya lewat domain. Kalau cocok, sertifikat terbit. Karena sertifikat Let's Encrypt berumur 90 hari, Certbot juga memasang timer otomatis untuk memperpanjangnya sebelum habis — jadi kamu tak perlu memikirkannya lagi.

Analogi: Certbot seperti petugas yang mengurus "surat izin aman" untuk rumahmu, menempelkannya di pintu, dan otomatis memperbaruinya tiap kali hampir kedaluwarsa — semua tanpa kamu repot.
3
Checklist

Yang perlu kamu siapkan

  • Domain yang sudah mengarah ke IP VPS (A record), dan bisa dibuka lewat http://.
  • Nginx terpasang dengan satu server block untuk domain itu (lihat panduan Nginx).
  • Port 80 dan 443 terbuka di firewall server.

Kalau memakai firewall UFW, pastikan port web terbuka dulu:

deploy@server — buka port web
deploy@server:~$ sudo ufw allow 80,443/tcpRule added# port 80 (http) & 443 (https) kini terbuka
4
Sekali pasang

Pasang Certbot

Pasang Certbot beserta plugin khusus Nginx — plugin inilah yang membuat Certbot bisa mengedit konfigurasi Nginx untukmu secara otomatis:

# DI SERVER — pasang Certbot + plugin Nginx
sudo apt update
sudo apt install -y certbot python3-certbot-nginx
Plugin python3-certbot-nginx penting: dengan ini Certbot tahu cara menambahkan baris HTTPS ke config Nginx tanpa kamu mengedit manual.
5
Inti

Terbitkan sertifikat & aktifkan HTTPS

Inilah perintah ajaibnya. Ganti app.domainku.com dengan domainmu. Certbot akan meminta sertifikat, memverifikasi, lalu mengatur Nginx untuk memakai HTTPS:

# Terbitkan sertifikat & atur HTTPS untuk domainmu.
# Certbot otomatis mengedit config Nginx untukmu.
sudo certbot --nginx -d app.domainku.com
 
# Pertama kali, Certbot menanyakan:
#  - email (untuk notifikasi kedaluwarsa)
#  - setuju Terms of Service (Y)
#  - redirect HTTP -> HTTPS? Pilih: 2 (Redirect) -- sangat disarankan

Saat ditanya soal redirect, pilih opsi 2 (Redirect) agar semua pengunjung http:// otomatis dialihkan ke https://. Kalau berhasil, tampilannya seperti ini:

deploy@server — Certbot berhasil
deploy@server:~$ sudo certbot --nginx -d app.domainku.comRequesting a certificate for app.domainku.comSuccessfully received certificate.Deploying certificate to /etc/nginx/sites-enabled/app.domainku.comRedirecting all traffic on port 80 to https Congratulations! You have successfully enabled HTTPS 🔒

Punya beberapa domain/subdomain? Terbitkan sekaligus dalam satu sertifikat dengan menambah -d berulang:

# Satu sertifikat untuk beberapa domain/subdomain sekaligus
sudo certbot --nginx \
  -d domainku.com \
  -d www.domainku.com \
  -d app.domainku.com
6
Saat yang ditunggu

Cek gembok di browser

Buka https://app.domainku.com. Sekarang ada ikon gembok di sebelah alamat, dan kalau kamu sengaja mengetik http://, browser otomatis dialihkan ke versi aman:

https://app.domainku.com
Koneksi aman — HTTPS aktif

Blog berbasis markdown

Tulis di Markdown. Push ke GitHub. Deploy di VPS milikmu sendiri.

Menyiapkan VPS pertama kamu

Sebuah catatan singkat tentang menjalankan blog kamu sendiri…

Menulis dengan Markdown

Sebuah catatan singkat tentang menjalankan blog kamu sendiri…

Deployment berhasil
Klik ikon gembok di browser untuk melihat detail sertifikat — tertulis diterbitkan oleh Let's Encrypt dan berlaku beberapa bulan ke depan. Selamat, situsmu kini aman!
7
Sekali cek

Pastikan perpanjangan otomatis jalan

Sertifikat Let's Encrypt berumur 90 hari, tapi Certbot sudah memasang timer yang memperpanjangnya otomatis. Uji simulasinya untuk memastikan tidak ada masalah (perintah ini tidak benar-benar memperpanjang):

# Uji simulasi perpanjangan (tidak benar-benar memperpanjang)
sudo certbot renew --dry-run
 
# Lihat timer yang menjalankan perpanjangan otomatis
sudo systemctl list-timers | grep certbot
deploy@server — uji perpanjangan
deploy@server:~$ sudo certbot renew --dry-runCongratulations, all simulated renewals succeeded# perpanjangan otomatis siap jalan ✅
Selama timer certbot.timer aktif (cek dengan systemctl list-timers), kamu tidak perlu melakukan apa pun. Certbot akan memperpanjang sendiri sekitar 30 hari sebelum kedaluwarsa.
8
Anti-stuck

Masalah umum & cara mengatasinya

GejalaSebabSolusi
Challenge failed / timeoutDomain belum mengarah ke server, atau port 80 ditutup firewall.Pastikan dig app.domainku.com +short = IP VPS, dan buka port: sudo ufw allow 80,443/tcp.
too many certificates / rate limitTerlalu sering menerbitkan untuk domain sama (batas Let’s Encrypt).Tunggu lalu pakai --dry-run saat uji coba. Jangan ulang terbit berkali-kali.
Cloudflare proxy aktif (awan oranye)Certbot tak bisa verifikasi karena trafik lewat Cloudflare.Set DNS only (awan abu-abu) saat menerbitkan, nyalakan lagi setelah berhasil.
Gembok tetap tidak munculBrowser masih buka versi http lama (cache).Buka https:// langsung, atau hard-refresh (Ctrl+Shift+R).

Selesai — website-mu kini ber-HTTPS, aman, dan otomatis diperpanjang.

Kombinasi Nginx + Let's Encrypt ini adalah fondasi standar website produksi yang profesional.