Menjaga Keamanan Server NGINX dengan SSL/TLS
Yo, bro! Kalau lo punya website atau aplikasi yang pake NGINX sebagai web server, pasti lo pengen aman, kan? Salah satu cara buat ngejaga keamanan server NGINX adalah dengan pake SSL/TLS. Ini nih, gue bakal kasih tau lo gimana caranya biar server lo aman pake SSL/TLS. Simak ya!
Apa Itu SSL/TLS?
Sebelum kita mulai, gue jelasin dulu apa itu SSL/TLS. SSL (Secure Sockets Layer) dan TLS (Transport Layer Security) adalah protokol kriptografi yang dipake buat ngejaga komunikasi antara server dan client. SSL udah gak dipake lagi, sekarang yang dipake adalah TLS. Tapi, orang-orang masih sering nyebutnya SSL aja. Intinya, SSL/TLS itu bikin koneksi antara server dan client jadi aman dengan cara mengenkripsi data yang dikirim.
Kenapa Harus Pake SSL/TLS?
- Enkripsi Data: Data yang dikirim antara server dan client dienkripsi, jadi kalo ada yang nyadap, mereka gak bakal bisa baca datanya.
- Autentikasi: SSL/TLS juga ngejaga keaslian server, jadi client bisa yakin bahwa mereka lagi ngobrol sama server yang beneran.
- Integritas Data: SSL/TLS ngejaga data biar gak diubah-ubah sama orang yang gak berhak.
- SEO: Google suka banget sama website yang pake SSL/TLS, jadi bisa nambah ranking lo di hasil pencarian.
Cara Pasang SSL/TLS di NGINX
Oke, sekarang gue bakal kasih tau lo gimana caranya pasang SSL/TLS di NGINX. Kita bakal pake Let’s Encrypt, karena gratis dan gampang dipake.
Install Certbot
Certbot adalah tool buat dapetin sertifikat SSL dari Let’s Encrypt. Lo bisa install Certbot pake perintah berikut:
sudo apt-get update sudo apt-get install certbot python3-certbot-nginx
Dapetin Sertifikat SSL
Setelah Certbot terinstall, lo bisa dapetin sertifikat SSL pake perintah:
sudo certbot --nginx -d namadomainlo.com -d www.namadomainlo.com
Ganti
namadomainlo.com
sama domain lo. Certbot bakal ngejalin komunikasi sama Let’s Encrypt buat dapetin sertifikat SSL.Konfigurasi NGINX
Certbot bakal otomatis ngekonfigurasi NGINX buat pake sertifikat SSL yang baru didapet. Tapi, lo juga bisa ngecek konfigurasi NGINX di
/etc/nginx/sites-available/default
. Pastiin ada bagian kayak gini:server { listen 443 ssl; server_name namadomainlo.com www.namadomainlo.com; ssl_certificate /etc/letsencrypt/live/namadomainlo.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/namadomainlo.com/privkey.pem; # Konfigurasi lainnya... }
Redirect HTTP ke HTTPS
Biar semua koneksi HTTP dialihkan ke HTTPS, lo bisa nambahin konfigurasi kayak gini di NGINX:
server { listen 80; server_name namadomainlo.com www.namadomainlo.com; return 301 https://$host$request_uri; }
Test Konfigurasi NGINX
Sebelum restart NGINX, pastiin dulu konfigurasinya bener pake perintah:
sudo nginx -t
Kalo gak ada error, restart NGINX:
sudo systemctl restart nginx
Auto Renew Sertifikat SSL
Sertifikat SSL dari Let’s Encrypt cuma berlaku selama 90 hari. Tapi, lo bisa nge-setup auto renew pake cron job. Buka crontab:
sudo crontab -e
Tambahin baris berikut:
0 12 * * * /usr/bin/certbot renew --quiet
Ini bakal ngecek sertifikat setiap hari jam 12 siang dan renew kalo udah mau kadaluarsa.
Tips Tambahan
- Pake Versi Terbaru TLS: Pastiin lo pake versi terbaru TLS (sekarang TLS 1.3) biar lebih aman. Lo bisa nge-set ini di konfigurasi NGINX.
- Disable SSLv3 dan TLS 1.0/1.1: Versi-versi ini udah gak aman lagi, jadi lebih baik disable.
- Pake Strong Cipher Suites: Pake cipher suites yang kuat buat enkripsi data.
Nah, itu dia cara ngejaga keamanan server NGINX pake SSL/TLS. Semoga bermanfaat, bro! Kalo ada pertanyaan, tinggal komen aja. Stay safe!