htpasswd – Dalam postingan sebelumnya DI SINI, saya sudah membahas bagaimana cara melakukan instalasi TSA Server dengan menggunakan SignServer. Sesudahnya, saya pun sudah menuliskan bagaimana cara membuat pengaturan worker di SignServer agar TSA Servernya bisa berjalan dengan baik (baca DI SINI).
Namun masalahnya, ketika TSA Server itu sudah berjalan dengan baik (mengikuti tutorial yang saya berikan), TSA Server tersebut dapat dihit atau diakses dari manapun dan oleh siapapun. Tentunya kalian tak ingin hal tersebut terjadi, kan? Oleh sebab itu, akses ke TSA Server ini harus dibatasi.
Bagaimana cara membatasi akses ke TSA Server tersebut? Salah satu caranya adalah dengan menggunakan htpasswd. Apa itu htpasswd? Htpasswd merupakan sebuah tool yang digunakan untuk membuat dan mengubah flat-files yang digunakan untuk menyimpan username dan password untuk autentikasi dasar dari pengguna HTTP.
Dalam postingan kali ini, saya akan membahas bagaimana cara menggunakan htpasswd dan cara mengaplikasikannya ke dalam web server (dalam hal ini adalah nginx) di atas CentOS7 Server
Konfigurasi Nginx
Anggap saja sedikit konfigurasi awal nginx yang bertindak sebagai proxy bagi SignServer adalah seperti berikut:
location / { proxy_set_header X-Forwarded-Host $host:$server_port; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #rewrite ^/signserver(/.*)$ $1 break; #rewrite ^/$ /signserver; proxy_pass http://127.0.0.1:9813/signserver/process?workerName=TSA; }
Menggunakan Htpasswd
Sebelum menggunakan htpasswd, terlebih dahulu kalian harus membuat file untuk menyimpan username dan password yang akan digunakan dalam proses autentikasi ketika mengakses web. Pada kesempatan kali ini, saya akan membuat file bernama htpasswd yang berlokasi di /etc/nginx. Cara membuatnya:
touch /etc/nginx/htpasswd
Berikutnya adalah melakukan instalasi apache-utils agar bisa menggunakan perintah htpasswd. Cara melakukan instalasinya:
yum install -y httpd-tools
Jika sudah melakukan instalasi httpd-tools, sekarang kalian sudah bisa menggunakan perintah htpasswd untuk membuat username dan password. Caranya:
cd /etc/nginx
htpasswd -2 <nama_file_menyimpan_passwd> <username>
{masukkan password untuk user yang akan dibuat}
{Ulangi memasukkan password yang sama}
keterangan:
- Perintah -2 merupakan fungsi hash SHA-256 yang digunakan untuk membuat hash password. Fungsi hash ini umumnya didukung di semua platform Linux.
Jika prosesnya benar, kalian akan melihat pesan updating password for user xxxx
Untuk melihat apakah benar user yang ditambahkan tadi masuk ke dalam file htpasswd, jalankan perintah:
cat /etc/nginx/htpasswd
Rekonfigurasi Nginx
Kembali lagi ke nginx. Setelah username dan password dibuat, sekarang waktunya menambahkan 2 baris perintah ke dalam konfigurasi nginx agar ada autentikasi user sebelum web diakses. Baris yang perlu ditambahkan adalah
location / { proxy_set_header X-Forwarded-Host $host:$server_port; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #rewrite ^/signserver(/.*)$ $1 break; #rewrite ^/$ /signserver; proxy_pass http://127.0.0.1:9813/signserver/process?workerName=TSA; auth_basic "Restricted Content"; auth_basic_user_file /etc/nginx/htpasswd; }
Keterangan:
- auth_basic merupakan pesan yang akan muncul saat hendak memasukkan username dan password untuk mengakses web.
- auth_basic_user_file merupakan file yang digunakan untuk mencocokkan proses autentikasi.
Jika sudah, restart service nginx agar konfigurasi yang baru dimasukkan bisa berjalan. Caranya:
service nginx restart
Akses Web
Tahap terakhir adalah mengakses web-nya. Seharusnya, sekarang kalian tidak bisa langsung masuk ke dalam web tersebut tanpa memasukkan username dan password. Saat mengakses web, yang akan muncul adalah sebuah pop up menu
Silakan masukkan username dan password sesuai dengan yang sudah dimasukkan di awal tadi. Jika benar, kalian akan masuk ke dalam halaman utama web tersebut. jika salah, kalian harus mengulang kembali proses memasukkan username dan password yang benar.
Itu tadi sedikit cara membatasi akses ke server TSA. Konfigurasi ini sangat mungkin untuk diaplikasikan ke web lainnya. Sampai jumpa di tutorial berikutnya.