- Paso 1: Requisitos previos
- Paso 2: Crear un archivo para guardar las contraseñas
- Paso 3: Configurar el directorio a proteger
- Paso 4: Probar que funciona
Paso 1: Requisitos previos
Para poder utilizar esta utilidad htpasswd de Apache2 hay que tenerla instalada, podéis comprobarlo ejecutando en el terminal: htpasswd, si devuelve resultados y no da error este todo esta OK. Si no esta instalada se instala a través de este paquete de Apache2, aunque deberia instalarse por defecto cuando se instala Apache2.sudo apt install apache2-utils
Aquí tenéis información sobre este paquete: https://packages.debian.org/es/sid/apache2-utilsPodéis comprobar si están en el sistema y activos con el siguiente comando
apache2ctl -M | grep auth
Y además hay que tener en el sistema los siguiente modulos de Apache2:auth_basic_module,authn_core_module,authn_file_module,
authz_core_module,authz_host_module,authz_user_module
![Apache2 - Módulos de autentificacion Apache2 - Módulos de autentificacion](/cw/0ASJ5CETH6IJ74NXGNH10030/apache2ctl.webp)
Y si alguno no esta activo, no aparece en la lista, lo activáis de esta forma:
a2enmod nombre_de_modulo
Aunque esto viene por defecto instalado y no deberíais tener ningún problema.Paso 2: Crear un archivo para guardar las contraseñas
Ahora vamos a crear el archivo de passwords y guardarlo en una ruta, donde queramos, y lo enlazaremos en el fichero de virtualhost. El fichero de passwords se tiene que llamar .htpasswd y por ejemplo podéis crear uno en /etc/apache2/.htpasswd y utilizarlo para todas las webs que queréis proteger, o podemos crear uno diferente para cada web que queremos proteger.En el ejemplo lo ponemos en /etc/apache2
Y la forma de crear el usuario y password es
sudo htpasswd -c /etc/apache2/.htpasswd alex
alex es el usuario y nos pedirá un password que se asocia a ese nombre de usuario y el parámetro -c solo se utiliza si es la primera vez y se tiene que crear el fichero.![Apache2 - proteger directorio con contraseña Apache2 - proteger directorio con contraseña](/cw/0ASJ5CETH6IJ74NXGNH10030/proteger-directorio-htpasswd.webp)
Y el fichero de passwords (.htpasswd) queda de esta forma:
![Apache2 - Fichero de contraseña .htpasswd Apache2 - Fichero de contraseña .htpasswd](/cw/0ASJ5CETH6IJ74NXGNH10030/fichero-htpasswd.webp)
Paso 3: Configurar el directorio a proteger
Ahora que tenemos creado el fichero de contraseñas y guardado vamos a el directorio del web que queremos o si queremos proteger el web completo. Comentar que se puede ir protegiendo diferentes directorios con diferentes passwords.Para proteger nuestro web tenemos que poner en el fichero .htaccess las siguientes líneas el principio del fichero:
AuthType Basic
AuthName "Password Required"
Require valid-user
AuthUserFile /etc/apache2/.htpasswd
![Apache2 - Fichero .htaccess Apache2 - Fichero .htaccess](/cw/0ASJ5CETH6IJ74NXGNH10030/fichero-htaccess.webp)
Esto protege desde donde está el fichero .htaccess, todo lo que está a su nivel y todos sus subdirectorios.
Una vez configurado el fichero .htaccess vamos a probarlo
Paso 4: Probar que funciona
Ponemos la url en el navegador ver y tiene que salir la ventana de petición de login.![Apache2 - Ejemplo de petición de login al acceder al web Apache2 - Ejemplo de petición de login al acceder al web](/cw/0ASJ5CETH6IJ74NXGNH10030/web-con-login-de-apache2.webp)
Para esto vamos a crear un web con un virtualhost y vamos a ponerle el password. Si no recordáis muy bien cómo crear un virtualhost os dejo este artículo de repaso Crear un Apache virtualhost en Linux
El árbol del directorio quedaría de esta forma:
![Apache2 - Directorio de ejemplo a proteger Apache2 - Directorio de ejemplo a proteger](/cw/0ASJ5CETH6IJ74NXGNH10030/directorio-pruebas-htaccess.webp)
En esta estructura de directorios vemos que el fichero .htaccess esta al nivel de la raíz del web con lo que lo protegerá todo, si el fichero .htaccess lo hubiéramos puesto dentro de uno de los directorios solo protegerá es directorio y sus subdirectorios pero no el web raiz y tampoco el subdirectorio dos.
Si quereis saber más sobre el comando Tree podéis mirar este artículo tree - ver el árbol de directorios y ficheros, o si quereis saber mas de Linux
Y esto es todo, y feliz programming
Saludos
Alex.
También puede interesarte:
![]() |
||
![]() |
Vagrant error - The specified host network collides with a non-hostonly network! |
|
![]() |
||
![]() |
||
![]() |
||
![]() |