Tulisan kemarin kita telah membahas mengenai pemanfaatan .htpasswd untuk membuat Password Authentication dengan Apache, sekarang lanjut kita terapkan untuk Nginx.

Langsung saja kita mulai praktek.

Khusus pengguna Debian/Ubuntu dan derivatifnya , Anda perlu memasang apache2-utils:

$ sudo apt-get install apache2-utils

Kemudian lakukan perintah berikut:

$ sudo htpasswd -c /lokasi/yg/anda/inginkan/.htpasswd ali

Kalau untuk distro lainnya tidak perlu Anda memasang paket apache2-utils,  karena paket htpasswd berada dalam satu pake Apache, jadi hanya memasang Apache saja.

Jika Anda ingin pure tanpa adanya paket Apache sama sekali di sistem (berlaku pada pengguna Debian/Ubuntu), Anda bisa memanfaatkan openssl untuk mendapatkan generated password tersebut. Berikut ini caranya:

$ printf "USER:$(openssl passwd -apr1 PASSWORD_ANDA)\n" > /dir/Anda/.htpasswd

Ganti USER dan PASSOWD_ANDA disesuaikan dengan username dan password yang Anda inginkan.

Kemudian kita sunting pengaturan Nginx Anda dengan nano, vi, atau vim.

Untuk pengguna Debian/Ubuntu dan derivatifnya:

$ sudo nano /etc/nginx/sites-available/default

Untuk pengguna Fedora/Centos/RHEL/Arch Linux dan derivatifnya:

$ sudo vi /etc/nginx/nginx.conf

Lalu tambahkan berikut di location / { atau direktori yg Anda anggap penting untuk dilindungi:

location / {
    auth_basic "Restricted";
    auth_basic_user_file /dir/Anda/.htpasswd;
}

Contoh pada direktori lain misalnya nama direktorinya rahasia :

location /rahasia/ {
    auth_basic "Restricted";
    auth_basic_user_file /dir/Anda/.htpasswd;
}

Kemudian untuk memastikan pengaturan Anda sudah benar atau belum, bisa menggunakan perintah berikut:

$ sudo nginx -t

Jika sudah seperti tulisan di bawah ini:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Artinya Nginx sudah sukses, langsung saja Anda restart Nginx nya:

$ sudo service nginx restart
atau
$ sudo systemctl nginx restart

Jika sudah langsung saja Anda tes di peramban Anda, jika sudah keluar password authentication-nya artinya Anda telah sukses mengikuti tutorial ini.

Semoga bermanfaat 😊