HTTPS adalah fondasi keamanan website. Tanpa HTTPS, semua data yang dikirim antara pengunjung dan server dalam keadaan terbaca oleh siapa saja. Let's Encrypt adalah Certificate Authority gratis yang memberikan sertifikat SSL/TLS secara otomatis. Artikel ini membahas cara memasangnya di server Debian 13.
Pengertian SSL/TLS
SSL (Secure Sockets Layer) adalah protokol keamanan yang mengenkripsi koneksi antara browser pengguna dan server website. TLS (Transport Layer Security) adalah versi terbaru dari SSL. Ketika website menggunakan HTTPS, semua data yang dikirim dienkripsi sehingga tidak bisa disadap.
Mengapa HTTPS Penting?
- Keamanan Data: Password, nomor kartu kredit, dan data pribadi terlindungi
- Kepercayaan Pengunjung: Browser menandikan website HTTPS dengan gembok hijau
- SEO: Google memberi peringkat lebih tinggi untuk website HTTPS
- Wajib: Browser modern memperingatkan website HTTP sebagai "Tidak Aman"
Pengertian Let's Encrypt
Let's Encrypt adalah Certificate Authority gratis, otomatis, dan terbuka yang didukung oleh organisasi seperti Mozilla, Cisco, dan EFF. Let's Encrypt memberikan sertifikat SSL yang valid selama 90 hari dan bisa diperbarui otomatis.
Keunggulan Let's Encrypt
- Gratis: Tidak perlu membayar sepeser pun
- Otomatis: Proses penerbitan dan perpanjangan sepenuhnya otomatis
- Terpercaya: Sertifikat dikenali oleh semua browser utama
- Sederhana: Instalasi hanya memerlukan beberapa perintah
Alat yang Dibutuhkan
- Server Debian 13 yang sudah memiliki website aktif
- Domain yang sudah mengarah ke server (lihat artikel DNS)
- Akses SSH ke server
- Nginx atau Caddy yang sudah terinstal
Instalasi Certbot
Certbot adalah tool resmi Let's Encrypt untuk mengelola sertifikat SSL.
1. Update Sistem
apt update && apt upgrade -y2. Instal Certbot
Untuk Nginx:
apt install certbot python3-certbot-nginx -yUntuk Caddy, Certbot sudah terintegrasi. Cukup aktifkan HTTPS di konfigurasi Caddy.
3. Verifikasi Instalasi
certbot --versionMemasang SSL dengan Certbot (Nginx)
Metode 1: Otomatis via Nginx Plugin
Cara termudah — Certbot akan otomatis mengkonfigurasi Nginx:
certbot --nginx -d masyarakat.id -d www.masyarakat.idIkuti instruksi:
- Masukkan email untuk notifikasi darurat
- Setujui Terms of Service (Y)
- Bagikan email dengan EFF? (Y atau N)
Certbot akan otomatis:
- Mengambil sertifikat SSL
- Mengkonfigurasi Nginx untuk HTTPS
- Mengatur redirect HTTP ke HTTPS
- Mengatur auto-renewal
Metode 2: Manual (standalone mode)
Jika tidak menggunakan Nginx atau ingin konfigurasi manual:
certbot certonly --standalone -d masyarakat.idPastikan tidak ada layanan yang menggunakan port 80 sebelum menjalankan perintah.
Metode 3: Webroot mode
Jika Nginx sudah berjalan dan tidak bisa dimatikan:
certbot certonly --webroot -w /var/www/html -d masyarakat.idVerifikasi Sertifikat SSL
Setelah pemasangan, verifikasi sertifikat:
# Cek tanggal到期
certbot certificates
# Lihat detail sertifikat
openssl s_client -connect masyarakat.id:443 -servername masyarakat.id 2>/dev/null | openssl x509 -noout -datesHasil akan menampilkan:
- Not Before: Tanggal mulai berlaku
- Not After: Tanggal berakhir (90 hari dari penerbitan)
Konfigurasi Auto-Renewal
Sertifikat Let's Encrypt berlaku 90 hari. Certbot otomatis memperbaruinya, tapi perlu verifikasi.
1. Test Auto-Renewal
certbot renew --dry-runJika tidak ada error, auto-renewal berjalan dengan baik.
2. Cek Cron Job
Certbot otomatis menambahkan cron job saat instalasi:
cat /etc/cron.d/certbotHasilnya akan seperti:
0 */12 * * * root test -x /usr/bin/certbot -a \! -e /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renewArtinya: setiap 12 jam, Certbot memeriksa dan memperbarui sertifikat yang akan berakhir dalam 30 hari.
3. Configurasi Manual Renewal Hook (Opsional)
Agar Nginx reload otomatis setelah perpanjangan:
nano /etc/letsencrypt/renewal-hooks/deploy/reload-nginx.shIsi dengan:
#!/bin/bash
systemctl reload nginxBuat executable:
chmod +x /etc/letsencrypt/renewal-hooks/deploy/reload-nginx.shKonfigurasi HTTPS untuk Caddy
Caddy sudah memiliki dukungan bawaan untuk Let's Encrypt. Cukup ubah konfigurasi Caddy:
masyarakat.id {
reverse_proxy localhost:3000
tls {
dns cloudflare {env.CF_API_TOKEN}
}
}Caddy otomatis:
- Memesan sertifikat Let's Encrypt
- Memperbarui otomatis
- Mengaktifkan HTTPS
Untuk DNS-01 challenge (domain dengan Cloudflare):
apt install caddy-dns-cloudflareTroubleshooting
1. Error "Challenge failed"
Penyebab: Domain tidak mengarah ke server, atau port 80 diblokir. Solusi:
# Pastikan domain mengarah ke IP server
dig masyarakat.id
# Pastikan port 80 terbuka
ufw status2. Error "Unable to register an account"
Penyebab: Email tidak valid atau Let's Encrypt rate limit. Solusi: Coba lagi beberapa saat kemudian atau gunakan email yang valid.
3. Error "Permission denied"
Penyebab: Certbot tidak dijalankan sebagai root. Solusi:
sudo certbot --nginx -d masyarakat.id4. Sertifikat Tidak Otomatis Diperbarui
Penyebab: Cron job hilang atau certbot tidak terinstal. Solusi:
# Cek cron job
cat /etc/crontab
# Reinstall certbot
apt reinstall certbot
# Manual renewal
certbot renew --force-renewal5. Campuran HTTP dan HTTPS (Mixed Content)
Penyebab: Ada konten yang masih dimuat via HTTP. Solusi: Periksa developer tools browser (F12 → Console), cari sumber yang masih HTTP, dan ubah ke HTTPS.
6. Certificate Chain Incomplete
Penyebab: Sertifikat antara tidak terpasang. Solusi:
# Dengan Nginx, pastikan ssl_certificate mencakup full chain
ssl_certificate /etc/letsencrypt/live/masyarakat.id/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/masyarakat.id/privkey.pem;Kesimpulan
Let's Encrypt memberikan solusi SSL gratis yang mudah dipasang dan dikelola. Dengan Certbot, proses penerbitan, konfigurasi, dan perpanjangan sertifikat dilakukan sepenuhnya otomatis. HTTPS bukan lagi opsional — ini adalah kebutuhan dasar setiap website modern untuk keamanan, kepercayaan pengunjung, dan peringkat SEO.
Kunci utama:
- Selalu gunakan auto-renewal dan verifikasi dengan
certbot renew --dry-run - Pastikan domain sudah mengarah ke server sebelum memasang SSL
- Selalu arahkan HTTP ke HTTPS agar tidak ada konten campuran
- Backup konfigurasi Nginx/Caddy sebelum perubahan signifikan
Catatan penting: Pastikan selalu memperbarui sertifikat SSL sebelum kedaluwarsa. Meskipun auto-renewal aktif, periksa secara berkala dengan certbot certificates untuk memastikan semua sertifikat masih valid. Jika sertifikat kedaluwarsa, website akan ditandai "Tidak Aman" oleh browser.
Ingat: HTTPS adalah hak, bukan kemewahan. Setiap website berhak memiliki koneksi terenkripsi, dan Let's Encrypt membuatnya dapat diakses oleh semua orang secara gratis.
Dipublikasikan untuk membantu para pengelola website mengamankan situs mereka dengan HTTPS gratis.