Setup Basic Authentication di NGINX

calendar_today
schedule 3 min read

Setup Basic Authentication di NGINX

Halo, teman-teman! Kali ini kita bakal bahas gimana caranya nge-setup basic authentication di NGINX. Basic authentication ini tuh kayak gembok buat website kita, jadi cuma orang-orang tertentu aja yang bisa akses. Nggak sembarang orang bisa masuk, harus punya username dan password dulu. Keren, kan?

Apa Itu Basic Authentication?

Basic authentication itu metode autentikasi yang simpel banget. Ketika kamu coba akses website yang diproteksi, bakal muncul pop-up minta username dan password. Kalau nggak punya, ya nggak bisa masuk. Gampang, kan?

Kenapa Pake NGINX?

NGINX tuh web server yang kenceng banget dan banyak dipake buat nge-host website. Selain itu, NGINX juga punya fitur keamanan yang oke, termasuk basic authentication. Jadi, nggak ada salahnya kita coba setup basic authentication di NGINX.

Langkah-Langkah Setup Basic Authentication di NGINX

  1. Install apache2-utils

    Pertama, kita butuh tools buat bikin file password. Di sini kita pake htpasswd yang ada di package apache2-utils. Buat yang pake Ubuntu atau Debian, tinggal ketik:

    code
    sudo apt-get update
    sudo apt-get install apache2-utils

    Buat yang pake CentOS atau Fedora, pake perintah:

    code
    sudo yum install httpd-tools
  2. Bikin File Password

    Sekarang, kita bikin file password pake htpasswd. Misalnya, kita mau bikin username admin:

    code
    sudo htpasswd -c /etc/nginx/.htpasswd admin

    Nanti kamu bakal diminta masukin password buat user admin. File .htpasswd bakal disimpen di /etc/nginx.

    Kalau mau nambah user lagi, tinggal pake perintah yang sama tanpa -c:

    code
    sudo htpasswd /etc/nginx/.htpasswd user2

    Jangan lupa, -c cuma dipake waktu bikin file password pertama kali.

  3. Konfigurasi NGINX

    Sekarang, buka file konfigurasi NGINX kamu. Biasanya ada di /etc/nginx/sites-available/default atau /etc/nginx/nginx.conf. Cari bagian server atau location yang mau kamu proteksi.

    Tambahkan konfigurasi ini di dalam server atau location:

    code
    auth_basic "Restricted Area";
    auth_basic_user_file /etc/nginx/.htpasswd;

    Contoh lengkapnya:

    code
    server {
        listen 80;
        server_name example.com;
    
        location / {
            auth_basic "Restricted Area";
            auth_basic_user_file /etc/nginx/.htpasswd;
            # ... konfigurasi lainnya ...
        }
    }

    Simpan file konfigurasi dan keluar.

  4. Test Konfigurasi dan Restart NGINX

    Sebelum restart NGINX, pastiin dulu konfigurasinya bener pake perintah:

    code
    sudo nginx -t

    Kalau keluar pesan syntax is okay dan test is successful, berarti konfigurasinya bener. Terus, restart NGINX:

    code
    sudo systemctl restart nginx

    Atau pake perintah:

    code
    sudo service nginx restart
  5. Coba Akses Website

    Buka browser dan akses website kamu. Harusnya muncul pop-up minta username dan password. Masukin username dan password yang udah kamu bikin tadi. Kalau berhasil, kamu bakal bisa akses website. Kalau gagal, coba cek lagi konfigurasinya.

Tips Tambahan

  • Ganti Password Secara Berkala: Biar lebih aman, ganti password secara berkala. Pake perintah htpasswd lagi buat ganti password user yang udah ada.

  • Proteksi Folder Tertentu: Kalau mau proteksi folder tertentu, tambahkan konfigurasi di dalam location yang sesuai. Misalnya, buat proteksi folder /admin:

    code
    location /admin {
        auth_basic "Admin Area";
        auth_basic_user_file /etc/nginx/.htpasswd;
    }
  • Jangan Lupa Backup: Selalu backup file konfigurasi dan file .htpasswd biar aman.

Nah, gampang banget, kan? Dengan basic authentication, website kamu jadi lebih aman dari orang-orang yang nggak diundang. Selamat mencoba!

A

Written by Ariful

Full-stack engineer obsessed with web performance.