Acceso web para usuario con contraseña .htaccess
Queremos que sólo un usuario (o varios) puedan acceder a una determinada carpeta de nuestro servidor. Además, para acceder deberán introducir nombre de usuario y contraseña. Esto es posible gracias al fichero .htaccess y a un segundo fichero (el nombre y carpeta que elijamos) donde guardaremos los usuarios y contraseñas.
En primer lugar deberemos crear el fichero que contendrá los usuarios y contraseñas encriptadas. Este ficheros es muy importante que esté situado siempre un nivel inferior a la carpeta raíz de nuestro sitio web. De esta forma conseguiremos que no sea público y accesible desde fuera, impidiendo que algún usuario pudiera abrirlo y obtener los usuarios y las contraseñas. Para evitar esto guardaremos el fichero, en nuestro caso, en:
/home/usuario/.htpasswd (una carpeta inferior a la carpeta de nuestra web /home/usuario/www)
Para crear este fichero utilizaremos el comando htpasswd, para ello accederemos a /home/usuario/
cd /home/usuario/
Y ejecutaremos el comando:
htpasswd -c .htpasswd miusuarioweb
(donde “miusuarioweb” será el nombre del usuario que creará el comando htpasswd y .htpasswd será el nombre del fichero creado)
Nos pedirá la contraseña para el usuario especificado, que deberemos introducir dos veces.
Ahora veremos el contenido del archivo creado .htpasswd:
aserver@xxx:~/contra_priv$ cat .htpasswd
miusuarioweb:F2qRaD.zm.C/.
Como se puede observar, el comando htpasswd, genera el fichero y encripta las contraseñas.
Seguidamente crearemos el fichero .htaccess dentro del diectorio publico, con el comando:
nano /home/usuario/www/.htaccess
Con el contenido:
AuthType Basic
AuthName “Sitio Privado”
AuthUserFile /home/usuario/.htpasswd
Require user miusuarioweb
Donde:
AuthType: indicará el tipo de autenticación.
AuthName: nombre sólo a efectos informativos.
AuthUserFile: con este parámetro indicaremos la ubicación y nombre del fichero de contraseñas creado anteriormente con htpasswd.
Require user miusuario: con este comando indicaremos el nombre del usuario que tendrá acceso al sitio privado.
De esta forma, cuando un usuario intente acceder a nuestro sitio o carpeta privada:
http://www.misitioprivado.com/
Nos mostrará una ventana de autenticación, para introducir usuario y contraseña:
Si introducimos el usuario y la contraseña correctos nos mostrará el contenido del www.sitioprivado.com :
Contenido indexado de la carpeta privada
En caso de no introducir usuario y contraseña correctos el servidor Apache mostrará una página de error con el texto:
Authorization Required
This server could not verify that you are authorized to access the document requested. Either you supplied the wrong credentials (e.g., bad password), or your browser doesn’t understand how to supply the credentials required.
Server at www.misistioprivado.com Port 80