Panduan Lengkap Mengamankan Subdomain SSL dengan Certbot

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.

Panduan Lengkap Mengamankan Subdomain SSL dengan 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:

  1. 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.
  2. 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.
  3. Akses Root/Sudo: Anda perlu akses dengan hak istimewa (root atau sudo) di server Anda untuk menjalankan perintah instalasi dan konfigurasi.
  4. Certbot Terinstal: Jika belum, instal Certbot di server Anda. Proses instalasinya umumnya mudah dan bisa pakai snapd atau 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_name sudah 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!

Scroll to Top