A veces puede tenerse la necesidad de instalar una aplicación web en un directorio, pero no queremos que sea accesible por todo el mundo. Desde hace muchos tiempo, Apache proporciona un mecanismo fácil para configurar este escenario, que suele ser usando un fichero .htaccess o directamente en el fichero de configuración de Apache con alguna directiva <Directory>.

En esta ocasión quiero mostrar la configuración pero apoyándose en el directorio «/etc/apache2/conf.d» de apache, que vale perfectamente si tienes una Ubuntu 10.04 LTS, que es mi caso.

Se trata de crear un fichero, llamado por ejemplo «directorio.conf» y alojarlo en dicho directorio «/etc/apache2/conf.d«, donde Apache lo lee automáticamente, con el siguiente contenido:

<Directory /var/www/directorio_a_proteger>
  <IfModule mod_authn_file.c>
  AuthType Basic
  AuthName "Texto a mostrar"
  AuthUserFile /etc/usersweb.pwd
  </IfModule>
  Require valid-user
</Directory>

donde «/var/www/directorio_a_proteger» es el directorio donde esta la web a proteger.

Falta crear el fichero donde están los usuarios, que como se ve es: /etc/usersweb.pwd que puede ser ese, o cualquier otro que creemos, siempre que lo indiquemos aquí correctamente. Para ello utilizaremos el comando:

htpasswd -c /etc/usersweb.pwd nombre_usuario

Se nos pedirá la contraseña, y solo faltará reiniciar el Apache:

/etc/init.d/apache2 restart

y ya debería de funcionar.