Pasang SSL gratis Let's Encrypt di NGINX Ubuntu 24.04 untuk amankan website dengan HTTPS mudah, cepat, dan tanpa biaya.
Halo, Kawan Belajar!
Apakah kalian seorang developer atau pemilik website yang ingin mengamankan situs dengan HTTPS, tapi terkendala dengan biaya? Tenang, kalian tidak sendirian. Banyak developer yang mengalami hal serupa, apalagi saat mengelola proyek pribadi, website komunitas, atau sekadar ingin menambahkan lapisan keamanan dasar pada lingkungan staging atau produksi kecil.
Sebagai solusinya, ada Let's Encrypt, layanan sertifikat SSL gratis dan bersifat terbuka. Dengan Let's Encrypt, kamu bisa mengaktifkan HTTPS pada website yang kamu miliki tanpa perlu membayar sepeser pun. Solusi ini sangat cocok untuk proyek skala kecil hingga menengah, tanpa mengorbankan keamanan dasar.
Sebelum masuk ke langkah teknis, mari kenali dulu apa itu Let's Encrypt. Let's Encrypt merupakan layanan otoritas sertifikat (Certificate Authority / CA) yang menyediakan sertifikat SSL/TLS secara gratis. Tujuannya adalah untuk membuat enkripsi web menjadi sesuatu yang mudah diakses oleh siapa saja, tanpa hambatan biaya atau kompleksitas teknis.
Layanan ini dikelola oleh organisasi nirlaba bernama Internet Security Research Group (ISRG) dan telah digunakan oleh jutaan website di seluruh dunia.
Dengan Let's Encrypt, kamu bisa mendapatkan sertifikat SSL secara cepat dan otomatis cukup dari server kamu sendiri, tanpa proses verifikasi email atau akun manual.
Banyak alasan kenapa Let's Encrypt menjadi pilihan favorit para developer dan sysadmin di seluruh dunia. Berikut beberapa kelebihannya:
Gratis
Tidak ada biaya tahunan atau pendaftaran. Kamu bisa langsung mengaktifkan HTTPS tanpa keluar biaya sepeser pun.
Aman
Meskipun gratis, Let's Encrypt menggunakan teknologi enkripsi dan protokol keamanan yang sama kuatnya dengan SSL berbayar. Data antara pengunjung dan server tetap terlindungi.
Mudah Digunakan
Proses pemasangan bisa dilakukan langsung dari server lewat tool seperti Certbot. Tidak perlu membuat akun, tidak perlu validasi email, cukup lewat baris perintah.
Otomatis
Proses penerbitan dan perpanjangan sertifikat bisa diotomatisasi. Jadi kamu tidak perlu khawatir lupa memperbarui sertifikat setiap 90 hari.
Meski sangat bermanfaat, Let's Encrypt juga memiliki beberapa batasan yang perlu diperhatikan:
Hanya mendukung Domain Validation (DV)
Tidak ada verifikasi organisasi (OV) atau validasi tingkat lanjut seperti Extended Validation (EV).
Masa aktif hanya 90 hari
Namun jangan khawatir, sertifikat SSL Let's Encrypt dapat diperpanjang masa aktinya.
Tidak ada garansi atau dukungan premium
Berbeda dengan SSL berbayar yang biasanya disertai support dan jaminan asuransi.
Wildcard hanya bisa diaktifkan via DNS validation (manual)
Jika kamu butuh wildcard SSL (untuk semua subdomain), prosesnya sedikit lebih kompleks
Sebelum mulai instalasi SSL Let's Encrypt, pastikan kamu sudah memenuhi persyaratan awal berikut:
VPS dengan sistem operasi Ubuntu 24.04
Jika belum memiliki VPS, kamu bisa menggunakan Kilat VM 2.0 dari CloudKilat. Untuk panduan pemesanan layanan, silakan ikuti langkah-langkah berikut ini.
Website berbasis web server NGINX dengan domain aktif
Pastikan kamu sudah memiliki website yang menggunakan NGINX dan domain yang telah diarahkan atau dipointing ke VPS milikmu. Jika belum punya domain, kamu bisa registrasi domain di CloudKilat dengan berbagai pilihan ekstensi. Panduan pendaftaran domain tersedia di sini.
Hak akses ke user dengan privilege sudo (root) pada VPS
Akses ini diperlukan untuk menjalankan instalasi dan konfigurasi Certbot.
Domain tidak dalam mode proxied
Jika kamu menggunakan layanan seperti Cloudflare, Sucuri, atau Web Application Firewall (WAF) lainnya, pastikan fitur proxy dalam kondisi nonaktif sementara waktu. Hal ini diperlukan agar Let's Encrypt bisa melakukan verifikasi domain secara langsung ke IP VPS kamu.
Dalam panduan ini, berikut detail versi dari sistem operasi dan aplikasi yang digunakan:
Langkah-langkah berikut digunakan untuk mengamankan satu domain (misalnya namadomain.com dan www.namadomain.com) menggunakan Certbot, tool resmi dari Let's Encrypt yang memudahkan proses instalasi dan konfigurasi SSL di web server.
Sebelum memulai, pastikan sistem kamu memiliki Certbot dan plugin untuk NGINX agar konfigurasi SSL dapat dilakukan secara otomatis. Jalankan perintah berikut untuk menginstalnya:
sudo apt update
sudo apt install certbot python3-certbot-nginx -y
Sebelum melanjutkan instalasi SSL, pastikan kamu sudah memiliki konfigurasi server block di NGINX yang sesuai dengan domain yang akan diamankan.
a. Buka file konfigurasi NGINX untuk domain kamu:
sudo nano /etc/nginx/sites-available/namadomain.com
Catatan: Ganti
namadomain.comdengan nama file konfigurasi sesuai dengan domain yang kamu gunakan.
b. Temukan baris server_name, dan pastikan sudah diatur dengan nama domain yang diamankan.
c. Simpan konfigurasi dan tutup editor (jika ada perubahan).
d. Periksa apakah sintaks konfigurasi NGINX sudah benar:
sudo nginx -t
e. Jika tidak ada error, lanjutkan dengan me-reload layanan NGINX agar perubahan diterapkan:
sudo systemctl reload nginx
Gunakan perintah berikut untuk mendapatkan sertifikat SSL dari Let's Encrypt dan sekaligus mengonfigurasikan server block NGINX website kamu agar menggunakan HTTPS:
sudo certbot --nginx -d namadomain.com
Catatan: Mohon sesuaikan namadomain.com sesuai dengan nama domain atau subdomain yang ingin kamu amankan.
Jika proses berhasil, kamu akan melihat pesan Successfully received certificate yang menandakan bahwa domain kamu telah berhasil diverifikasi dan sertifikat SSL berhasil diterbitkan oleh Let's Encrypt.
Selain itu, kamu juga akan melihat pesan Deploying certificate yang menunjukkan bahwa konfigurasi server block NGINX website kamu telah diperbarui secara otomatis agar menggunakan sertifikat HTTPS.
Secara default, sertifikat dan key SSL yang dihasilkan Certbot akan disimpan di direktori berikut:
a. Certificate (file .pem) >> /etc/letsencrypt/live/namadomain.com/fullchain.pem
b. Private Key >> /etc/letsencrypt/live/namadomain.com/privkey.pem
Kamu bisa menggunakan path ini jika ingin mengelola konfigurasi SSL secara manual di masa mendatang.
Setelah proses instalasi sertifikat SSL selesai, penting untuk memastikan bahwa HTTPS telah aktif dan berfungsi dengan benar pada domain kamu.
Berikut beberapa cara untuk menguji instalasi SSL:
a. Akses Website Melalui HTTPS
Buka browser dan kunjungi domain kamu dengan awalan https://, misalnya:
https://namadomain.com
Catatan: Mohon sesuaikan namadomain.com sesuai dengan nama domain atau subdomain kamu .
Jika berhasil, ikon gembok akan muncul di address bar sebagai tanda koneksi aman.
b. Gunakan Online Tools
Kamu bisa menguji instalasi SSL menggunakan online tools seperti SSL Checker untuk menguji detail instalasi SSL, seperti:
Sertifikat SSL Wildcard adalah jenis sertifikat SSL yang dapat digunakan untuk mengamankan satu domain utama beserta seluruh subdomainnya pada level yang sama (misal: *.namadomain.com).
Tidak seperti sertifikat SSL biasa yang bisa divalidasi melalui HTTP, wildcard SSL dari Let's Encrypt harus menggunakan metode DNS challenge. Itu artinya, nantinya kamu perlu menambahkan DNS record (TXT) ke pengelola domain kamu untuk membuktikan kepemilikan domain.
Sama seperti instalasi SSL biasa, Certbot digunakan untuk mengelola proses instalasi SSL Let's Encrypt. Namun, untuk wildcard, kita tidak menggunakan plugin NGINX, melainkan metode manual via DNS. Silakan jalankan perintah berikut untuk melakukan instalasi Certbotnya:
sudo apt update
sudo apt install certbot -y
Gunakan perintah berikut untuk meminta sertifikat wildcard menggunakan metode DNS manual:
sudo certbot certonly --manual --preferred-challenges=dns -d "*.namadomain.com" -d namadomain.com
Catatan: Gantilah namadomain.com dengan domain yang ingin kamu amankan.
Setelah menjalankan perintah Certbot, kamu akan menerima instruksi untuk menambahkan sebuah DNS TXT record sebagai metode verifikasi domain. Contoh pesan yang ditampilkan:
Please deploy a DNS TXT record under the name
_acme-challenge.namadomain.com with the following value:
s8HwaNd_jft7OpgKv63AAoaU7piG...
Before continuing, verify the record is deployed.
Silakan masuk ke portal pengelola domain kamu, lalu tambahkan record seperti berikut:
Hostname: _acme-challenge
Record Type: TXT
Value: (isi dari certbot)
Catatan: Gantilah (isi dari Certbot) dengan string verifikasi yang diberikan Certbot saat proses dijalankan.
Jika kamu mendaftarkan domain melalui CloudKilat dan menggunakan Name Server default CloudKilat, kamu bisa menambahkan record tersebut melalui portal client area CloudKilat. Berikut panduan lengkapnya terkait Manajemen DNS Record di Portal Client Area CloudKilat.
Setelah record ditambahkan, tunggu beberapa menit hingga proses propagasi DNS selesai. Untuk memastikan bahwa DNS TXT record telah tersebar dan dapat diakses publik, kamu bisa melakukan pengecekan menggunakan online tools seperti: (https://www.whatsmydns.net/).
Setelah yakin bahwa record telah terpropagasi dengan benar, kamu bisa kembali ke terminal lalu tekan Enter untuk melanjutkan verifikasi.
Jika validasi berhasil, kamu akan melihat pesan seperti:
Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/namadomain.com/fullchain.pem
Key is saved at: /etc/letsencrypt/live/namadomain.com/privkey.pem
Kamu bisa melakukan verifikasi sertifikat yang telah di-generate dengan:
sudo certbot certificates
Berikut penjelasan dari masing-masing bagian:
Catatan: File fullchain.pem dan privkey.pem inilah yang digunakan dalam konfigurasi Web Server NGINX untuk mengaktifkan SSL pada website kamu. Jangan sampai mengubah atau membagikan file privkey.pem karena merupakan bagian rahasia dari sistem keamanan sertifikat.
Edit file konfigurasi server block untuk website kamu:
sudo vim /etc/nginx/sites-available/namadomain.com
Catatan: Silakan sesuaikan namadomain.com dengan nama file konfigurasi server block yang kamu gunakan. Lokasi file ini bisa berbeda tergantung struktur server kamu, namun umumnya berada di /etc/nginx/sites-available/.
Berikut contoh konfigurasi server block NGINX yang sudah disesuaikan untuk:
# Redirect HTTP ke HTTPS
server {
listen 80;
server_name namadomain.com;
return 301 https://$host$request_uri;
}
# Server block untuk HTTPS
server {
listen 443 ssl;
server_name namadomain.com;
ssl_certificate /etc/letsencrypt/live/namadomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/namadomain.com/privkey.pem;
root /var/www/html;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
Catatan:
- Jangan lupa mengganti namadomain.com dengan domain atau subdomain kamu yang sebenarnya.
- Pastikan file sertifikat sudah tersedia di path /etc/letsencrypt/live/namadomain.com/.
Setelah selesai, simpan dan uji konfigurasi dengan menjalankan perintah berikut:
sudo nginx -t
sudo systemctl reload nginx
Setelah proses instalasi sertifikat SSL Wildcard selesai, penting untuk memastikan bahwa HTTPS telah aktif dan berfungsi dengan benar pada domain kamu.
Berikut beberapa cara untuk menguji instalasi SSL:
a. Akses Website Melalui HTTPS
Buka browser dan kunjungi domain kamu dengan awalan https://, misalnya:
https://namadomain.com
Catatan: Mohon sesuaikan namadomain.com sesuai dengan nama domain atau subdomain kamu .
Jika berhasil, akan muncul ikon gembok di address bar sebagai tanda koneksi aman. Cek detail sertifikat di browser, pastikan Common Name (CN) menampilkan format *.namadomain.com yang menandakan sertifikat wildcard.
b. Gunakan Online Tools
Kamu bisa menguji instalasi SSL menggunakan online tools seperti SSL Checker untuk menguji detail instalasi SSL, seperti:
Mengamankan website dengan HTTPS bukan lagi pilihan, tapi kebutuhan. Dengan memanfaatkan Let's Encrypt, kamu bisa mendapatkan sertifikat SSL gratis yang aman, mudah dipasang, dan dapat diperbarui secara otomatis, baik untuk satu domain maupun seluruh subdomain dengan sertifikat wildcard.
Langkah-langkah di atas diharapkan dapat membantu kamu, baik sebagai developer, sysadmin, maupun pemilik website, untuk meningkatkan keamanan situs tanpa harus mengeluarkan biaya tambahan. Ingat, meskipun gratis, SSL dari Let's Encrypt tetap memberikan perlindungan yang setara dengan sertifikat berbayar dalam hal enkripsi data antara pengunjung dan server.
Jadi, tunggu apa lagi? Segera aktifkan HTTPS pada website kamu dan tunjukkan kepada pengunjung bahwa keamanan data mereka adalah prioritas utama. Dengan begitu, selain melindungi pengguna, kamu juga meningkatkan kepercayaan dan reputasi situs di mata publik maupun mesin pencari.
Jangan ragu untuk menghubungi tim support kami jika Anda memiliki pertanyaan atau masalah terkait layanan CloudKilat.