Di api.co.id, kami selalu percaya bahwa keamanan itu nomor satu. Nah, dalam dunia pengembangan web, mengamankan setiap aspek situs Anda itu krusial, termasuk subdomain. Seringkali, fokus utama kita ada di domain utama, tapi bagaimana dengan subdomain? Mengamankan subdomain dengan sertifikat SSL Subdomain Certbot adalah langkah penting untuk menjaga integritas data dan kepercayaan pengguna. Artikel ini akan membahas tuntas kenapa dan bagaimana kita bisa melakukannya dengan mudah pakai Certbot.

Kenapa Subdomain Itu Penting untuk Diamankan dengan SSL?
Mungkin Anda berpikir, kalau domain utama sudah pakai SSL, subdomain juga otomatis aman, kan? Sayangnya, tidak selalu begitu. Setiap subdomain itu seperti entitas terpisah yang butuh perlindungan sendiri. Tanpa SSL, subdomain Anda rentan banget terhadap berbagai serangan siber seperti phishing, man-in-the-middle, atau penyebaran malware. Dengan menginstal SSL, kita memastikan bahwa semua komunikasi antara server dan browser pengguna di subdomain itu terenkripsi. Artinya, data sensitif yang ditransfer (seperti login, detail pembayaran) jadi aman dari intipan pihak tak bertanggung jawab. Selain itu, Google juga lebih suka situs yang terenkripsi penuh. Ini bisa bantu meningkatkan peringkat SEO subdomain Anda di hasil pencarian.
related article: Cara Install SSL di NGINX Menggunakan Certbot dan Let’s Encrypt
Mengenal Jenis Sertifikat SSL untuk Subdomain
Saat mau mengamankan subdomain, ada beberapa pilihan sertifikat SSL yang bisa Anda pertimbangkan:
- Single Domain SSL: Ini cuma melindungi satu nama domain spesifik, termasuk satu subdomain seperti
www.namadomain.com. - Multi-Domain SSL (SAN/UCC): Sertifikat ini bisa melindungi beberapa domain dan subdomain yang berbeda dalam satu sertifikat. Fleksibel kalau Anda punya banyak situs yang tidak saling berhubungan.
- Wildcard SSL: Ini dia favorit para developer yang punya banyak subdomain! Dengan satu sertifikat Wildcard SSL, Anda bisa melindungi domain utama dan semua subdomain yang ada di satu level, misalnya
blog.namadomain.com,shop.namadomain.com, dan seterusnya. Cukup pakai notasi.namadomain.com. Let’s Encrypt juga menyediakan sertifikat wildcard ini, lho.
Untuk kasus ini, kita akan fokus pada cara mengimplementasikan SSL untuk subdomain spesifik dan opsi wildcard menggunakan Certbot.
Persiapan Sebelum Eksekusi Certbot untuk Subdomain
Sebelum kita mulai, ada beberapa hal yang perlu Anda siapkan:
- Server NGINX Aktif: Pastikan NGINX sudah terinstal dan berjalan di server Anda. Jika belum, atau Anda ingin tahu cara instalasi dasar SSL di NGINX, Anda bisa cek panduan lengkapnya di artikel kami tentang Cara Install SSL di NGINX Menggunakan Certbot dan Let’s Encrypt.
- Domain dan Subdomain: Pastikan subdomain yang akan diamankan sudah terdaftar dan mengarah ke IP server Anda melalui konfigurasi DNS (record A/AAAA). Ini penting biar Certbot bisa melakukan validasi.
- Akses Root/Sudo: Anda perlu akses dengan hak istimewa (root atau sudo) di server Anda untuk menjalankan perintah instalasi dan konfigurasi.
- Certbot Terinstal: Jika belum, instal Certbot di server Anda. Proses instalasinya umumnya mudah dan bisa pakai
snapdatau manajer paket distro Anda.
related article: What Is an API? Definition, Types, and How It Works
Langkah-langkah Mengamankan Subdomain dengan Certbot
Mari kita mulai! Saya akan pandu Anda langkah demi langkah.
1. Konfigurasi Server Block NGINX untuk Subdomain
Setiap subdomain perlu punya server block NGINX-nya sendiri (atau termasuk dalam server block yang sama jika menggunakan wildcard). Ini penting biar NGINX tahu bagaimana menangani permintaan untuk subdomain tersebut.
Buat file konfigurasi NGINX baru di direktori /etc/nginx/sites-available/ untuk subdomain Anda, misalnya sub.domainanda.com:
sudo nano /etc/nginx/sites-available/sub.domainanda.com
Isi file tersebut dengan konfigurasi dasar HTTP server block:
server { listen 80; listen [::]:80; server_name sub.domainanda.com www.sub.domainanda.com; root /var/www/sub.domainanda.com; # Ganti dengan path direktori web Anda index index.html index.htm; location / { try_files $uri $uri/ =404; }}
Setelah itu, buat symlink ke sites-enabled dan uji konfigurasi NGINX Anda:
sudo ln -s /etc/nginx/sites-available/sub.domainanda.com /etc/nginx/sites-enabled/sub.domainanda.comsudo nginx -t sudo systemctl reload nginx
Pastikan tidak ada error dan NGINX berhasil di-reload.
2. Eksekusi Certbot untuk Mendapatkan Sertifikat SSL
Sekarang, saatnya pakai Certbot untuk mendapatkan sertifikat SSL. Kita bisa pakai plugin NGINX dari Certbot yang akan otomatis mengkonfigurasi NGINX kita.
Jalankan perintah berikut:
sudo certbot --nginx -d sub.domainanda.com -d www.sub.domainanda.com
Atau, jika Anda ingin mengamankan banyak subdomain dengan sertifikat wildcard:
sudo certbot certonly --nginx --agree-tos --email your_email@example.com -d domainanda.com -d .domainanda.com --preferred-challenges dns
Perintah --preferred-challenges dns ini krusial untuk wildcard karena validasinya butuh penambahan TXT record di DNS Anda. Certbot akan memberi tahu Anda TXT record apa yang perlu ditambahkan. Setelah menambahkannya di panel DNS provider Anda, tunggu beberapa saat (propagasi DNS) lalu tekan Enter di Certbot untuk melanjutkan validasi.
Certbot akan bertanya apakah Anda ingin mengarahkan trafik HTTP ke HTTPS. Pilih opsi yang sesuai (biasanya opsi 2 untuk mengarahkan). Jika berhasil, Certbot akan mengkonfigurasi NGINX secara otomatis, dan Anda akan melihat pesan sukses.
3. Verifikasi Instalasi SSL Subdomain Anda
Setelah proses Certbot selesai, buka browser Anda dan kunjungi https://sub.domainanda.com. Pastikan Anda melihat ikon gembok di bilah alamat, menandakan koneksi sudah aman. Anda juga bisa pakai tools online seperti SSL Labs SSL Test untuk mengecek detail sertifikat Anda dan memastikan semuanya sudah benar.
4. Otomatisasi Perpanjangan Sertifikat
Sertifikat Let’s Encrypt berlaku selama 90 hari. Untungnya, Certbot punya fitur perpanjangan otomatis. Anda bisa tes fitur ini dengan perintah:
sudo certbot renew --dry-run
Jika tidak ada error, berarti Certbot sudah siap untuk perpanjangan otomatis. Sistem Certbot biasanya sudah menambahkan cron job atau systemd timer untuk menjalankan perintah certbot renew secara rutin, jadi Anda tidak perlu khawatir sertifikat Anda kedaluwarsa.
Troubleshooting Umum Saat Mengamankan Subdomain
Kadang, ada saja masalah yang muncul. Jangan panik!
- DNS Propagation: Jika Certbot gagal memvalidasi domain, mungkin ada masalah dengan propagasi DNS. Pastikan record A/AAAA atau TXT untuk wildcard sudah benar dan beri waktu beberapa menit.
- Konfigurasi NGINX: Cek kembali server block NGINX Anda. Pastikan
server_namesudah benar dan tidak ada konflik dengan server block lain. Periksa juga log error NGINX di/var/log/nginx/error.log. - Firewall: Pastikan port 80 (HTTP) dan 443 (HTTPS) terbuka di firewall server Anda (misalnya dengan UFW). Certbot butuh akses ke port 80 untuk validasi HTTP-01 challenge.
- Batas Let’s Encrypt: Let’s Encrypt punya batas jumlah sertifikat yang bisa diterbitkan dalam seminggu. Kalau Anda terlalu sering mencoba dan gagal, Anda bisa kena batas ini. Cek dokumentasi Let’s Encrypt untuk detailnya.
Kesimpulan
Mengamankan subdomain pakai sertifikat SSL Subdomain Certbot adalah praktik terbaik yang wajib Anda terapkan. Dengan mengikuti panduan ini, Anda bisa memastikan bahwa setiap bagian dari website Anda aman, melindungi data pengguna, dan meningkatkan kredibilitas situs di mata mesin pencari. Prosesnya mungkin terasa teknis di awal, tapi Certbot dan NGINX membuat semuanya jadi jauh lebih mudah. Selamat mencoba!






