SSL Gratis dengan Let's Encrypt: Cara Pasang, Perpanjangan Otomatis, dan Masa Berlaku yang Makin Pendek Mulai 2027

Setiap website dan API butuh HTTPS, dan sertifikat gratis dari Let's Encrypt melindungi trafik sama baiknya dengan sertifikat berbayar. Cara kerja sertifikat SSL, perbedaan gratis dan berbayar, cara memasang Let's Encrypt dengan Certbot di Nginx, sertifikat wildcard, perubahan sepanjang 2025 dan 2026 seperti berakhirnya OCSP dan email pengingat, serta alasan perpanjangan otomatis kini wajib.

Dipublikasikan 12 menit baca
Gembok kombinasi di atas keyboard komputer

Website tanpa HTTPS ditandai Not Secure oleh semua browser besar, tidak bisa memakai HTTP/2 di browser, dan membuat data login serta isi formulir bisa dibaca siapa pun yang berada di jaringan yang sama. Sejak Let's Encrypt hadir pada 2015, sertifikat SSL tidak perlu lagi dibeli, dan kini ratusan juta website memakainya. Tantangannya sekarang bukan lagi biaya, tetapi perawatannya: masa berlaku sertifikat makin pendek, Let's Encrypt berhenti mengirim email pengingat sejak 2025, dan perpanjangan yang gagal tanpa ketahuan bisa membuat seluruh website tidak bisa diakses. Artikel ini membahas cara memasangnya dengan benar dan memastikan sertifikat terus diperpanjang.

Apa Sebenarnya Fungsi Sertifikat SSL

Nama SSL masih dipakai sampai sekarang, padahal protokol yang berjalan adalah TLS, biasanya versi 1.2 atau 1.3. Sertifikat punya dua tugas. Pertama, membuat browser dan server bisa menyepakati kunci enkripsi, sehingga tidak ada pihak di tengah yang bisa membaca atau mengubah trafik. Kedua, membuktikan bahwa server itu memang milik domain yang tertulis di address bar, karena certificate authority (CA) yang dipercaya browser sudah memeriksa bahwa pemohon benar-benar menguasai domain tersebut.

Di luar urusan keamanan, HTTPS sudah jadi syarat dasar. Banyak fitur browser yang diblokir di HTTP biasa, seperti lokasi, service worker, dan akses kamera. Payment gateway dan app store mewajibkan HTTPS untuk callback dan API. Mesin pencari memakainya sebagai salah satu sinyal peringkat. Dan untuk aplikasi yang mengolah data pribadi, enkripsi saat data dikirim adalah salah satu pengamanan paling dasar yang diharapkan oleh UU Pelindungan Data Pribadi.

Gratis atau Berbayar, Apa Bedanya?

JenisYang diperiksa CAContoh penerbitKekuatan enkripsi
DV (Domain Validated)Hanya bahwa Anda menguasai domainLet's Encrypt, ZeroSSL, Google Trust Services, dan produk DV berbayarSama dengan OV dan EV
OV (Organization Validated)Domain sekaligus perusahaan terdaftar di baliknyaCA berbayar seperti DigiCert, Sectigo, dan GlobalSignSama dengan DV
EV (Extended Validation)Pemeriksaan badan hukum yang lebih ketatCA berbayarSama dengan DV. Tanda hijau khusus di browser sudah lama dihapus

Dari sisi perlindungan trafik, sertifikat DV gratis dan sertifikat EV yang mahal itu setara. Yang Anda bayar adalah pemeriksaan identitas, garansi, dan dukungan dari CA. Sertifikat berbayar masih masuk akal kalau tender, mitra perbankan, atau kebijakan internal secara tegas meminta OV atau EV, atau kalau kontrak dukungan memang penting bagi Anda. Tapi sertifikat berbayar pun tetap butuh otomasi: sejak 15 Maret 2026 masa berlaku maksimum sertifikat publik adalah 200 hari, jadi sertifikat berbayar pun harus diganti minimal dua kali setahun.

Cara Let's Encrypt Memverifikasi Domain

Let's Encrypt tidak punya formulir web dan tidak ada pemeriksaan manual oleh manusia. Semuanya berjalan lewat protokol ACME: sebuah client di server Anda meminta sertifikat, Let's Encrypt memberi tantangan (challenge), lalu client membuktikan bahwa ia menguasai domain dengan menjawab tantangan itu.

ChallengeCara membuktikanCocok untukBatasan
HTTP-01Menyediakan file token di /.well-known/acme-challenge/ lewat port 80Sebagian besar server tunggal dengan IP publikPort 80 harus bisa diakses dari internet. Tidak bisa untuk sertifikat wildcard
DNS-01Membuat record TXT _acme-challenge di domainSertifikat wildcard, server di balik firewall, atau banyak server yang memakai satu sertifikatButuh akses API ke penyedia DNS supaya bisa otomatis
TLS-ALPN-01Menjawab handshake TLS khusus di port 443Reverse proxy seperti Caddy dan Traefik saat port 80 ditutupHanya didukung sebagian client

Yang Berubah Sepanjang 2025 dan 2026

Banyak panduan di internet ditulis sebelum perubahan-perubahan ini. Kalau server Anda disetel beberapa tahun lalu, cocokkan dengan daftar berikut.

  • Tidak ada lagi email pengingat. Let's Encrypt menghentikan layanan ini pada Juni 2025. Kalau perpanjangan gagal, tidak akan ada yang memberi tahu kecuali Anda punya monitoring sendiri.
  • OCSP sudah tidak ada. Let's Encrypt mematikan layanan OCSP pada Agustus 2025, dan sertifikat baru tidak lagi mencantumkan alamat OCSP. Pengecekan pencabutan sertifikat kini memakai CRL. Konfigurasi Nginx dengan ssl_stapling on akan memunculkan peringatan yang bisa diabaikan, atau baris itu bisa dihapus.
  • Tidak ada lagi sertifikat untuk autentikasi client. Fungsi TLS client authentication dihapus dari sertifikat Let's Encrypt pada 2026. Sistem yang memakainya untuk mutual TLS antar server perlu beralih ke CA privat.
  • Masa berlaku makin pendek di seluruh industri. Berdasarkan keputusan CA/Browser Forum, masa berlaku maksimum sertifikat publik turun menjadi 200 hari pada 15 Maret 2026, akan menjadi 100 hari pada 15 Maret 2027, dan 47 hari pada 15 Maret 2029.
  • Let's Encrypt bergerak lebih cepat dari industri. Sertifikat default-nya akan berubah dari 90 menjadi 64 hari pada 10 Februari 2027, lalu 45 hari pada 16 Februari 2028. Profil opsional bernama tlsserver sudah menerbitkan sertifikat 45 hari sejak 13 Mei 2026.
  • Sertifikat 6 hari dan sertifikat untuk alamat IP sudah tersedia untuk umum sejak Januari 2026, lewat profil shortlived.
  • Root dan intermediate baru. Sertifikat kini diterbitkan dari hierarki Generation Y, jadi Anda mungkin melihat intermediate bernama YE2 atau YR2, bukan E5 atau R10 seperti dulu. Jangan pernah menulis intermediate tertentu secara permanen di konfigurasi.
  • Metode validasi DNS baru, DNS-PERSIST-01, sudah diumumkan. Dengan metode ini cukup satu record TXT permanen, tanpa perlu mengubah DNS setiap kali perpanjangan. Pastikan ACME client Anda dan Let's Encrypt production sudah mendukungnya sebelum mengandalkannya.

Benang merahnya sederhana. Setup apa pun yang bergantung pada orang yang harus ingat memperpanjang, atau pada cron job yang dipatok memperpanjang setiap 60 hari, akan bermasalah dalam satu sampai dua tahun ke depan.

Memilih ACME Client

ToolCocok untukCatatan
CertbotServer Ubuntu atau Debian dengan Nginx atau ApacheClient dengan dokumentasi paling banyak. Plugin Nginx dan Apache-nya mengubah konfigurasi secara otomatis. Versi 4.1 ke atas mendukung ACME Renewal Information (ARI)
acme.shServer yang tidak ingin memasang Python, router, dan sertifikat wildcard lewat berbagai penyedia DNSBerupa shell script dengan dukungan lebih dari seratus API DNS
CaddyServer baru yang web server-nya masih bisa dipilihMengambil dan memperpanjang sertifikat sendiri tanpa tool tambahan
Modul ACME NginxPengguna Nginx yang ingin sertifikat dikelola langsung oleh NginxModul resmi ngx_http_acme_module, dipasang lewat paket nginx-module-acme. Masih relatif baru, jadi uji dulu sebelum dipakai di production
TraefikSetup Docker dan Docker ComposeMenerbitkan sertifikat per container berdasarkan label
cert-managerCluster KubernetesMengelola sertifikat sebagai resource Kubernetes dan memperpanjangnya sebelum habis
Control panel hostingShared hosting dengan cPanel, Plesk, atau sejenisnyaBiasanya sudah ada opsi Let's Encrypt atau AutoSSL sekali klik

Memasang Let's Encrypt dengan Certbot di Nginx

Contoh di bawah memakai Ubuntu dan Nginx, kombinasi yang paling sering kami temui di server yang kami kelola. Sebelum mulai, pastikan record A atau AAAA domain sudah mengarah ke server, dan port 80 serta 443 sudah dibuka di firewall maupun security group cloud.

  1. 1Pasang Certbot. Rekomendasi resminya lewat snap: sudo snap install --classic certbot, lalu sudo ln -s /snap/bin/certbot /usr/bin/certbot. Paket apt dengan python3-certbot-nginx juga bisa dipakai, tetapi versinya sering tertinggal.
  2. 2Pastikan Nginx sudah punya server block dengan server_name yang benar, misalnya example.com dan www.example.com, dan sudo nginx -t tidak menunjukkan error.
  3. 3Minta sertifikat: sudo certbot --nginx -d example.com -d www.example.com. Certbot memverifikasi domain lewat HTTP-01, menuliskan baris ssl_certificate ke konfigurasi Nginx, dan bisa menambahkan redirect dari HTTP ke HTTPS.
  4. 4Uji proses perpanjangan tanpa menerbitkan sertifikat sungguhan: sudo certbot renew --dry-run. Perintah ini memakai server staging, jadi kegagalan tidak dihitung ke rate limit production.
  5. 5Pastikan timer perpanjangan aktif: systemctl list-timers | grep certbot. Paket snap memasang timer yang berjalan dua kali sehari dan hanya memperpanjang kalau memang sudah waktunya.
  6. 6Buka website di browser, lalu cek sertifikat dari terminal: echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -issuer -dates.

Perintah terakhir menampilkan penerbit dan tanggal berlaku sertifikat. Pada sertifikat yang kami cek bulan ini, hasilnya menunjukkan penerbit CN = YE2 dari Let's Encrypt, tanggal notAfter 90 hari setelah diterbitkan, dan tidak ada alamat OCSP di bagian Authority Information Access. Ini sesuai dengan perubahan yang dijelaskan di atas.

Sertifikat Wildcard dan Server Tanpa Port 80

Sertifikat wildcard seperti *.example.com berlaku untuk semua subdomain, cocok untuk aplikasi multi-tenant yang memberi setiap pelanggan subdomain sendiri. Let's Encrypt hanya menerbitkan wildcard lewat DNS-01. Hindari mode DNS manual di Certbot, karena Anda harus menambahkan record TXT dengan tangan setiap kali perpanjangan. Gunakan plugin DNS seperti certbot-dns-cloudflare atau plugin Route 53, atau acme.sh dengan API penyedia DNS Anda. Beri token API izin hanya untuk mengubah record DNS di satu zona itu, dan simpan dengan permission file yang hanya bisa dibaca root.

Pengaturan HTTPS yang Disarankan Setelah Pemasangan

  • Arahkan semua trafik HTTP ke HTTPS, tetapi biarkan path /.well-known/acme-challenge/ tetap bisa diakses lewat port 80 kalau Anda memakai HTTP-01.
  • Izinkan hanya TLS 1.2 dan TLS 1.3. Versi yang lebih lama sudah dimatikan oleh semua browser modern.
  • Pakai fullchain.pem, bukan cert.pem, untuk ssl_certificate. Tanpa sertifikat intermediate, browser biasanya masih jalan, tetapi aplikasi Android, curl, dan callback payment gateway sering gagal.
  • Tambahkan HSTS setelah yakin semua subdomain sudah berjalan di HTTPS. Mulai dengan max-age yang pendek, dan tambahkan includeSubDomains serta preload hanya kalau benar-benar yakin, karena preload sulit dibatalkan.
  • Hapus baris ssl_stapling untuk sertifikat Let's Encrypt, karena sudah tidak ada OCSP responder yang bisa di-staple.
  • Bereskan mixed content: gambar, script, atau panggilan API yang masih memakai http:// akan diblokir atau ditandai oleh browser.

Kesalahan yang Membuat Perpanjangan Gagal

  • Port 80 ditutup setelah pemasangan pertama, atau ada aturan redirect yang mengirim path challenge ke tempat lain. Perpanjangan lewat HTTP-01 lalu gagal tanpa suara.
  • Sertifikat sudah diperpanjang tetapi Nginx tidak pernah di-reload, sehingga server tetap memakai sertifikat lama sampai kedaluwarsa. Plugin Nginx milik Certbot sudah menangani ini, tetapi certonly dengan webroot butuh deploy hook seperti --deploy-hook "systemctl reload nginx".
  • Domain punya record CAA yang hanya mengizinkan CA lain, sehingga Let's Encrypt menolak menerbitkan sertifikat. Tambahkan letsencrypt.org ke record CAA kalau Anda memakainya.
  • Mencoba berulang kali ke server production sampai terkena rate limit. Let's Encrypt hanya mengizinkan 5 sertifikat per minggu untuk kumpulan nama domain yang persis sama, dan 5 validasi gagal per domain per jam. Pakai --dry-run atau server staging selama masih bereksperimen.
  • Container Docker menyimpan sertifikat di dalam container tanpa volume, sehingga setiap redeploy meminta sertifikat baru dan lama-lama terkena limit.
  • Cron job dipatok memperpanjang setiap 60 hari, yang tidak akan cocok untuk sertifikat 64 dan 45 hari. Biarkan client yang menentukan lewat ARI, atau perpanjang di sekitar dua pertiga masa berlaku.
  • Beberapa server di belakang load balancer masing-masing meminta sertifikat untuk domain yang sama. Minta di satu tempat saja, atau pakai DNS-01, lalu distribusikan dari sana.

Monitoring Sekarang Jadi Tanggung Jawab Anda

Tanpa email pengingat, sertifikat yang kedaluwarsa biasanya pertama kali diketahui oleh pelanggan. Tambahkan pengecekan masa berlaku sertifikat ke monitoring yang sudah ada. Uptime Kuma, Zabbix, dan sebagian besar layanan uptime bisa memberi peringatan saat sertifikat mendekati kedaluwarsa. Sesuaikan batas peringatan dengan masa berlakunya: untuk sertifikat 90 hari, peringatan di sisa 20 hari cukup wajar, dan untuk sertifikat 45 hari sekitar 10 hari. Kalau peringatan itu muncul, artinya perpanjangan otomatis sudah gagal minimal sekali, jadi perlakukan sebagai insiden, bukan sekadar pengingat.

Uji sederhana untuk setup HTTPS apa pun: kalau semua engineer di tim cuti tiga bulan, apakah sertifikat tetap diperpanjang sendiri, dan apakah ada yang diberi tahu kalau ternyata gagal? Kalau jawabannya tidak, perbaiki itu lebih dulu.

Poin penting

  • Sertifikat gratis Let's Encrypt mengenkripsi trafik sama baiknya dengan sertifikat berbayar. Sertifikat berbayar diperlukan untuk kebutuhan identitas OV atau EV, garansi, atau dukungan.
  • Let's Encrypt tidak lagi mengirim email pengingat dan tidak lagi menjalankan OCSP, jadi monitoring dan konfigurasi dari panduan lama perlu diperbarui.
  • Masa berlaku sertifikat makin pendek: maksimum 200 hari sejak Maret 2026, dan default Let's Encrypt menjadi 64 hari pada Februari 2027 lalu 45 hari pada Februari 2028.
  • Pakai ACME client yang memperpanjang otomatis dan mendukung ARI, seperti Certbot versi terbaru, acme.sh, Caddy, Traefik, atau cert-manager, dan jangan pernah mengandalkan perpanjangan manual.
  • Gunakan DNS-01 dengan plugin API untuk wildcard, pakai fullchain.pem, reload web server setelah perpanjangan, dan pantau sendiri tanggal kedaluwarsanya.
Bagikan artikel ini

Artikel terkait

Artikel lain tentang software development, AI, cloud, dan infrastruktur.

Titik-titik cahaya yang saling terhubung oleh jalinan garis tipisKeamanan

13 menit baca

Cloudflare dan WAF untuk Website Bisnis: Apa yang Dilindungi Paket Gratis, Setup yang Benar, dan Kesalahan yang Sering Terjadi

Banyak website di Indonesia sudah memakai Cloudflare, tetapi setup-nya sering setengah jalan: SSL Flexible, IP server yang masih terbuka, atau Bot Fight Mode yang memblokir webhook payment gateway. Artikel ini membahas apa yang bisa dan tidak bisa dicegah WAF, isi paket Free, Pro, dan Business, checklist setup, custom rule yang layak dipasang, dan persiapan kalau Cloudflare sendiri sedang down.

Output instalasi paket berwarna hijau di terminal gelapKeamanan

8 menit baca

Celah OpenSSH di Alpine Linux: Password yang Cukup Panjang Bisa Membuka Akun Tanpa Password

Celah pada cara sshd memeriksa password di Alpine Linux, yang dijuluki sshole, memungkinkan siapa pun masuk ke akun tanpa password hanya dengan mengetik password lebih dari 256 byte. Server dan container mana yang terdampak, cara mengeceknya dengan beberapa perintah, versi paket perbaikan untuk setiap rilis Alpine, dan langkah sementara jika belum bisa update hari ini.

Mari berdiskusi

Sedang mencari partner untuk pengembangan software?

Ceritakan proyek yang sedang Anda bangun, kebutuhan yang ingin diselesaikan, dan tantangan yang dihadapi. Kami dapat membantu membahas pendekatan teknis, scope, timeline, dan estimasi biaya.

Mulai diskusi