Si necesitas proteger un determinado directorio con usuario y contraseña, dispones de dos opciones: .htpasswd y .htaccess. El archivo .htaccess tiene múltiples funciones, entre las que se encuentra limitar el acceso a un directorio; mientras que .htpasswd permite almacenar los nombres de usuarios y sus contraseñas para cada una de las restricciones establecidas. Ten en cuenta que es .htaccess tiene que estar ubicado dentro del directorio que queremos proteger.
Para establecer restricciones en .htaccess deberás indicar algo similar a lo siguiente:
AuthUserFile /var/www/vhosts/dominio.com/private/.htpasswd
AuthName DirectorioProtegido
AuthType Basic
require user UsuarioDominio
Donde en cada línea deberemos indicar:
Como hemos comentado, en este archivo se almacenan los usuarios con acceso al directorio protegido o los ficheros restringidos en .htaccess. Todos los datos que se almacenen en .htpasswd deben seguir la sintaxis usuario:contraseña, indicando siempre un usuario por línea. Ejemplo:
Usuario1:123456789
Usuario2:987654321
Si recurres al comando htpasswd en Apache las contraseñas estarán cifradas por defecto. También puedes modificar el archivo a través de SSH. Así, en caso de que quieras que se genere de forma automática el fichero o consultar datos del .htpasswd deberás ejecutar:
htpasswd -nb UsuarioDominio contraseña
Si quieres escribir estos datos directamente en el archivo, deberás realizar lo siguiente:
htpasswd -cb .htpasswd UsuarioDominio contraseña
Con el usuario .htpasswd creado y habiendo indicado cuál es el directorio protegido en .htaccess, dicho directorio solo estará accesible para los usuarios autorizados y sus claves de acceso.