Menjaga Keamanan Server NGINX dengan SSL/TLS

calendar_today
schedule 3 min read

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?

  1. Enkripsi Data: Data yang dikirim antara server dan client dienkripsi, jadi kalo ada yang nyadap, mereka gak bakal bisa baca datanya.
  2. Autentikasi: SSL/TLS juga ngejaga keaslian server, jadi client bisa yakin bahwa mereka lagi ngobrol sama server yang beneran.
  3. Integritas Data: SSL/TLS ngejaga data biar gak diubah-ubah sama orang yang gak berhak.
  4. 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.

  1. Install Certbot

    Certbot adalah tool buat dapetin sertifikat SSL dari Let’s Encrypt. Lo bisa install Certbot pake perintah berikut:

    code
    sudo apt-get update
    sudo apt-get install certbot python3-certbot-nginx
  2. Dapetin Sertifikat SSL

    Setelah Certbot terinstall, lo bisa dapetin sertifikat SSL pake perintah:

    code
    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.

  3. 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:

    code
    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...
    }
  4. Redirect HTTP ke HTTPS

    Biar semua koneksi HTTP dialihkan ke HTTPS, lo bisa nambahin konfigurasi kayak gini di NGINX:

    code
    server {
        listen 80;
        server_name namadomainlo.com www.namadomainlo.com;
        return 301 https://$host$request_uri;
    }
  5. Test Konfigurasi NGINX

    Sebelum restart NGINX, pastiin dulu konfigurasinya bener pake perintah:

    code
    sudo nginx -t

    Kalo gak ada error, restart NGINX:

    code
    sudo systemctl restart nginx
  6. 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:

    code
    sudo crontab -e

    Tambahin baris berikut:

    code
    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!

A

Written by Ariful

Full-stack engineer obsessed with web performance.