Prima data se creeaza fisierul care va stoca parolele utilizatorilor care vor avea acces la site:
apt-update
apt install apache2-utils
Acum se poate folosi comanda htpasswd care creeaza fisierul .htpasswd în /etc/apache2. Pentru primul utilizator se utilizeaza optiunea –c pentru crearea fisierului
htpasswd -c /etc/apache2/.htpasswd user1
Se confirma parola pentru utilizatorul user1 apoi se creeaza parola pentru utilizatorul user2:
htpasswd /etc/apache2/.htpasswd user2
Continutul fisierului .htpasswd (utilizatorul şi parola criptata) sunt accesibile cu comanda:
cat /etc/apache2/.htpasswd
Output-ul este ceva de genul:
user1:$apr1$lzxsIfXG$tmCvCfb49vpPFwKGVsuYz.
user2:$apr1$p1E9MeAf$kiAhneUwr.MhAE2kKGYHK.
Configurarea accesului restrictionat la site se poate face in doua moduri. Prima optiune este editarea fisierelor de configurare a serverului Apache prin Virtual Host. Cea de-a doua este editarea fisierului .htaccess
Configurarea accesului prin Virtual Host
Se realizeaza prin editarea fisierului 000-default.conf:
nano /etc/apache2/sites-enabled/000-default.conf
Se introduce blocul <Directory „/var/www/html”> …… </Directory> care defineste folderul unde se restrictioneaza aceesul prin parola (/var/www/html). In interiorul blocului se introduc directivele AuthName, AuthUserFile, etc. Fisierul 000-default.conf va avea urmatorul continut:
<VirtualHost *:80>
ServerName domeniu.ro
Redirect permanent / https://domeniu.ro
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
DocumentRoot /var/www/html
</VirtualHost>
<VirtualHost *:443>
ServerName domeniu.ro
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/domeniu.ro/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/domeniu.ro/privkey.pem
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory „/var/www/html”>
AuthType Basic
AuthName „Restricted Content”
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
</Directory>
</VirtualHost>
Se salveaza fisierul şi se reporneste serverul Apache:
service apache2 restart
Configurarea accesului prin fisierul .htaccess
Se editeaza fisierul principal de configurare al serverului Apache:
nano /etc/apache2/apache2.conf
Se cauta blocul <Directory> corespunzator folderului /var/www şi se activeaza utilizarea fisierului .htaccess prin schimbarea directivei AllowOverride din None în All:
. . .
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>. . .
Se salveaza şi se inchide fisierul.
Se creeaza fisierul .htaccess în interiorul folderului pentru care se doreste restrictionarea accesului (/var/www/html pentru intregul site):
nano /var/www/html/.htaccess
Se introduce urmatorul continut:
AuthType Basic
AuthName „Restricted Content”
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
Se salveaza fisierul şi se restarteaza serverul Apache:
service apache2 restart