Restringir acceso a una web mediante apache con htpasswd y htaccess


1. Crear archivo .htpasswd

En este archivo es donde vamos a configurar los usuarios y sus claves. Para ello basta con crear un archivo llamado .htpasswd en cualquier lugar de la máquina, en nuestro caso lo vamos a situar en la raíz de la web por si no tuvierais acceso a rutas más seguras pero lo mejor sería hacerlo en una ruta segura como por ejemplo /etc/apache/ en el caso de que tengamos acceso a todo nuestro servidor, dentro configuramos un usuario separado con dos puntos (:) de su clave encriptada y por cada línea.

Podemos generar la clave por consola si tenemos acceso a ella o usar algún generador online como http://www.htaccesstools.com/htpasswd-generator/

En el caso de hacerlo mediante el generador online, símplemente copiamos el resultado de crear el .htpasswd en nuestro fichero, en mi caso, voy a generar un usuario llamado pepe con clave 1234. El resultado es:

pepe:$apr1$Jnx.37dh$YbEaAE.no1INWn6ZsObOF1

Con el comando por consola se genera la clave y escribe el fichero:

$ htpasswd -c /ruta/fichero/.htpasswd pepe

Tras el comando nos pedirá que introduzcamos la clave para el usuario y escribirá el fichero. Ya sólo nos quedará usar el .htaccess para que la web nos pida al usuario a intentar entrar.

2. Configurar .htpasswd para que requiera autenticación.

En cualquier lugar de nuestro .htaccess añadimos las siguientes líneas.

AuthUserFile /ruta/fichero/.htpasswd
AuthName "MENSAJE QUE QUEREMOS QUE APAREZCA"
AuthType Basic
require valid-user

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *