Para proteger una página o directorio en Apache con contraseña utilizando htpasswd
, sigue estos pasos. Este proceso implica crear un archivo .htpasswd
para almacenar las credenciales del usuario y configurar Apache para requerir autenticación al acceder a la página o directorio específico.
1. Crear el Archivo .htpasswd
para Almacenar las Credenciales
- Instalar
apache2-utils
(si aún no está instalado), que incluye el comandohtpasswd
:
sudo apt install apache2-utils
- Crear el archivo
.htpasswd
:
- Decide dónde quieres almacenar el archivo
.htpasswd
. Una ubicación común es dentro del directorio/etc/apache2
o un subdirectorio de este. Por seguridad, no debería estar en un directorio accesible desde la web. - Usa el comando
htpasswd
para crear el archivo y añadir un usuario. Por ejemplo, para crear un archivo y añadir el usuariouser3
, ejecuta:bash sudo htpasswd -c /etc/apache2/.htpasswd user3
- Se te pedirá que ingreses y confirmes la contraseña para
user3
. El parámetro-c
se utiliza para crear el archivo; si quieres añadir más usuarios al mismo archivo.htpasswd
, omite el-c
en comandos subsiguientes.
2. Configurar Apache para Requerir Autenticación
- Editar el Archivo de Configuración de tu Sitio de Apache:
- Necesitas editar el archivo de configuración del sitio en el que deseas restringir el acceso. Los archivos de configuración del sitio generalmente se encuentran en
/etc/apache2/sites-available/
. - Por ejemplo, para editar el archivo de configuración de un sitio predeterminado:
bash sudo nano /etc/apache2/sites-available/000-default.conf
- Añadir Directivas para la Autenticación:
- Dentro del archivo de configuración, añade las siguientes directivas al contexto que corresponda. Podría ser dentro de un
<Directory>
o<Location>
que especifique la ruta al directorio o página que deseas proteger:apache <Directory "/var/www/html/protected"> AuthType Basic AuthName "Restricted Access" AuthUserFile /etc/apache2/.htpasswd Require valid-user </Directory>
- Reemplaza
"/var/www/html/protected"
con la ruta real al directorio que deseas proteger.AuthName
es el mensaje que se mostrará en el diálogo de autenticación.AuthUserFile
debe apuntar al archivo.htpasswd
que creaste.
- Reiniciar Apache para Aplicar los Cambios:
- Guarda los cambios en el archivo de configuración y reinicia el servidor Apache para aplicarlos:
bash sudo systemctl restart apache2
3. Verificación
- Ahora, cuando intentes acceder al directorio o página protegida desde un navegador, se te solicitará un nombre de usuario y una contraseña. Debes ingresar las credenciales que definiste en el archivo
.htpasswd
para acceder al contenido.
Este proceso establece una capa básica de seguridad para las páginas o directorios seleccionados en tu servidor Apache, utilizando autenticación básica. Ten en cuenta que la autenticación básica transmite las credenciales en texto claro, por lo que se recomienda usarla junto con una conexión HTTPS segura para proteger la información de autenticación.
![a penguin sticker on top of a blue ice cube](https://infogonzalez.com/wp-content/uploads/2024/02/pexels-photo-11034131.jpeg)
Gracias por visitar mi blog de informática, mi nombre es Tomás y soy formador y desarrollador web. Si quiere usted dejarme alguna sugerencia, ayuda o quiere un servicio de formación estoy escuchando ofertas en tomas.gonzalez@infogonzalez.com, en Facebook a https://www.facebook.com/Infogonzalez estoy deseando escucharle. Su duda o sugerencia NO molesta.