Pengantar:
Bulan lalu kita sudah menyiapkan web server dengan Apache for windows (baca: https://sadagori.com/install-apache-mysql-dan-php-for-windows/). Nah, topik kali ini sesuai dengan permintaan salah satu rekan admin yang ingin membatasi akses ke beberapa bagian website milik perusahaan dimana dia bekerja.
Dalam panduan kali ini kita akan melindungi direktori tertentu dengan kata sandi menggunakan otentikasi dan otorisasi bawaan dari web itu sendiri.
Prasyarat:
1. Apache terletak di folder C:\Apache24
2. DocumentRoot di E:\home\demoweb\public_html
3. Direktori yang akan di protek E:\home\demoweb\public_html\rahasia
Sesuaikan dengan instalasi dan folder anda sendiri.
Berikut tahapannya:
1. Jalan command prompt
2. Ketik perintah berikut:
C:\Apache24\bin\htpasswd -c E:/home/demoweb/.htpasswd wiseguy
Anda akan ditanya untuk mengetikan password dan konfirmasinya. Perintah tersebut akan menghasilkan file baru (switch -c) bernama .htpasswd di folder E:/home/demoweb dengan username wiseguy.
Untuk menambahkan user baru, ketik perintah berikut:
C:\Apache24\bin\htpasswd E:/home/demoweb/.htpasswd newuser
File .htpasswd akan berisi seperti ini:
wiseguy:$apr1$xU4NwVgo$kgNABOD6iGqXhnvfKmCs60
newuser:$apr1$sA4EFC1S$PQC7D8Q7FJM5ps1fJgeIc0
3. Open & Edit file konfigurasi virtual-host E:\home\demo-vhosts.conf
4. Tambahkan baris berikut:
<Directory "E:/home/demoweb/public_html/rahasia">
AuthType Basic
AuthName "Restricted Content"
AuthUserFile E:/home/demoweb/.htpasswd
Require valid-user
</Directory>
5. Konfigurasi virtual host demoweb.com selengkapnya akan seperti ini:
<VirtualHost *:80>
DocumentRoot "E:/home/demoweb/public_html"
ServerName demoweb.com
ServerAlias www.demoweb.com
ServerAdmin [email protected]
ErrorLog "E:/home/demoweb/logs/error.log"
TransferLog "E:/home/demoweb/logs/access.log"
<Directory "E:/home/demoweb/public_html">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<Directory "E:/home/demoweb/public_html/rahasia">
AuthType Basic
AuthName "Restricted Content"
AuthUserFile E:/home/demoweb/.htpasswd
Require valid-user
</Directory>
</VirtualHost>
6. Atau bila menggunakan SSL:
<VirtualHost *:443>
DocumentRoot "E:/home/demoweb/public_html"
ServerName demoweb.com
ServerAlias www.demoweb.com
ServerAdmin [email protected]
ErrorLog "E:/home/demoweb/logs/error.log"
TransferLog "E:/home/demoweb/logs/access.log"
<Directory "E:/home/demoweb/public_html">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<Directory "E:/home/demoweb/public_html/rahasia">
AuthType Basic
AuthName "Restricted Content"
AuthUserFile E:/home/demoweb/.htpasswd
Require valid-user
</Directory>
SSLEngine on
SSLCertificateFile "E:/home/demoweb/ssl/demoweb.crt"
SSLCertificateKeyFile "E:/home/demoweb/ssl/demoweb.key"
SSLCACertificateFile "E:/home/htdocs/ssl/rootCA.pem"
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
CustomLog "E:/home/demoweb/logs/ssl_request.log" \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>
Semoga ada manfaatnya.
WG.
sumber: digitalocean.com