Skip to main content
CheckTown
Dev Tools

htpasswd Generator: Apache and Nginx Basic Authentication

Publicado 5 min de lectura
En este artículo

Que es htpasswd?

Un archivo htpasswd es una base de datos en archivo plano utilizada por los servidores web Apache y Nginx para almacenar nombres de usuario y contrasenas hasheadas para la autenticacion HTTP Basic. Cada linea contiene un nombre de usuario y un hash de contrasena separados por dos puntos, como admin:$2y$10$abc... El archivo proporciona una forma sencilla de proteger recursos web sin necesitar un sistema de autenticacion completo.

La utilidad htpasswd fue originalmente parte del proyecto Apache HTTP Server, pero el formato de archivo se ha convertido en un estandar de facto soportado por muchos servidores web, proxies inversos y herramientas de desarrollo. Los generadores htpasswd modernos soportan multiples algoritmos de hash incluyendo bcrypt, SHA-1 y MD5, siendo bcrypt la opcion recomendada por seguridad.

Como funciona la generacion de htpasswd

Generar una entrada htpasswd implica hashear una contrasena en texto plano con un algoritmo elegido y formatearla junto al nombre de usuario. La fortaleza del hash resultante depende del algoritmo y su configuracion.

  • bcrypt ($2y$) — la opcion mas segura, utiliza un factor de coste configurable (por defecto 10) que controla lo costoso computacionalmente que es cada hash, haciendo los ataques de fuerza bruta impracticos
  • SHA-1 ({SHA}) — produce un digest SHA-1 codificado en Base64 con prefijo {SHA}; mas rapido que bcrypt pero significativamente mas debil contra ataques GPU modernos
  • MD5 ($apr1$) — variante MD5 personalizada de Apache con sal aleatoria; formato heredado aun soportado pero no recomendado para nuevos despliegues debido a debilidades conocidas

Pruébalo gratis — sin registro

Generar entrada htpasswd →

Usos comunes de htpasswd

La autenticacion basada en htpasswd se usa ampliamente para el control de acceso ligero donde un sistema de autenticacion completo seria excesivo.

  • Proteccion de sitios de staging — restringir el acceso a entornos de pre-produccion para que solo los miembros del equipo y las partes interesadas puedan ver el trabajo en curso
  • Seguridad del panel de administracion — anadir una capa extra de autenticacion frente a paneles de administracion CMS, herramientas de gestion de bases de datos o dashboards de monitoreo
  • Acceso al entorno de desarrollo — proteger servidores de desarrollo locales o compartidos contra accesos no autorizados sin configurar OAuth o LDAP

Preguntas frecuentes

Debo usar bcrypt, SHA-1 o MD5 para htpasswd?

Usa siempre bcrypt cuando sea posible. Bcrypt esta disenado especificamente para el hashing de contrasenas con un factor de coste configurable que lo hace resistente a ataques de fuerza bruta. SHA-1 y MD5 son funciones hash rapidas no disenadas para contrasenas — pueden ser descifradas ordenes de magnitud mas rapido que bcrypt.

Donde debo colocar el archivo htpasswd en mi servidor?

Almacena el archivo htpasswd fuera de tu raiz web para evitar que se sirva a los visitantes. Una ubicacion comun es /etc/apache2/.htpasswd o /etc/nginx/.htpasswd. Luego referencialo en tu configuracion del servidor con AuthUserFile (Apache) o auth_basic_user_file (Nginx). Nunca lo coloques en un directorio accesible publicamente.

Es la autenticacion HTTP Basic suficientemente segura para produccion?

La autenticacion Basic envia credenciales codificadas en Base64 (no cifradas) con cada solicitud, por lo que siempre debe usarse sobre HTTPS. Incluso con HTTPS, carece de funciones como gestion de sesiones, limitacion de velocidad y bloqueo de cuentas. Es adecuada para escenarios de bajo riesgo como sitios de staging o herramientas internas, pero la autenticacion de usuarios en produccion debe usar un sistema con sesiones basadas en tokens.

Herramientas relacionadas