Vamos a utilizar openssl y comprobamos si está instalada:
dpkg -l | grep openssl
Ahora creamos un archivo oculto .htpasswd en /etc/nginx
:
sudo sh -c "echo -n 'abhijeet:' >> /etc/nginx/.htpasswd"
Crea dos usuarios, uno con tu nombre y otro con tu apellido. Comprueba que el usuario y la contraseña aparezcan cifrados en el fichero:
cat /etc/nginx/.htpasswd
Editamos el archivo de server block:
sudo nano /etc/nginx/sites-available/nom_web
Y editamos dentro de location / {...}
:
server {
listen 80;
listen [::]:80;
root /var/www/abhijeet/html/perfect-learn;
index index.html index.htm index.nginx-debian.html;
server_name tasca;
location / {
auth_basic "Àrea restringida";
auth_basic_user_file /etc/nginx/.htpasswd;
try_files $uri $uri/ =404;
}
}
Y reiniciamos el servidor:
sudo systemctl restart nginx
Dentro de server block añadiremos:
server {
...
location / {
deny 198.192.1.10;
allow 192.168.1.1/24,
allow 127.0.0.1;
deny all;
}
}
Combinar IP y la autenticación HTTP:
server {
...
location / {
satisfy all;
deny 198.192.1.10;
allow 192.168.1.1/24,
allow 127.0.0.1;
deny all;
auth_basic "Administrator's area"
auth_basic_user_file conf/htpasswd;
}
}