Generador de .htpasswd

Crea el archivo .htpasswd para proteger con contraseña una carpeta o un entorno de pruebas, con varios usuarios y el cifrado que elijas para cada uno.

Generador de .htpasswd

Añade los usuarios que necesites, elige el cifrado de cada uno y descarga el archivo .htpasswd listo para subir al servidor. Debajo tienes las líneas exactas para Apache y nginx.

👤 Usuarios

    ⚙️ Ajustes de cifradocoste de bcrypt y rondas de SHA-512

    🔒 Todo se calcula en tu navegador: ni los usuarios ni las contraseñas salen de tu equipo.

    📄 Archivo .htpasswd

    ⚙️ Cómo activarlo en el servidor

    Pégalo en el .htaccess de la carpeta que quieres proteger.
     

    📚 Qué es el archivo .htpasswd

    El .htpasswd es un archivo de texto que guarda los usuarios y contraseñas con los que el servidor protege una carpeta o una web entera con la autenticación básica de HTTP: la ventanita del navegador que pide usuario y contraseña antes de enseñar nada. Lo leen Apache (módulos mod_auth_basic y mod_authn_file) y nginx (auth_basic).

    Tiene una línea por usuario, con el nombre y la contraseña cifrada separados por dos puntos:

    admin:$2y$10$Yh2b…
    maria:$apr1$Qx8…
    cliente:$6$k3…

    El servidor nunca guarda la contraseña, solo su hash: cuando alguien entra, cifra lo que ha escrito con el mismo método y compara. Por eso cada línea puede usar un cifrado distinto: el prefijo ($2y$, $apr1$, $6$, {SHA}) le dice al servidor cuál es.

    🧭 Cómo funciona por dentro

    1. El navegador pide la página y el servidor responde 401 Unauthorized con la cabecera WWW-Authenticate: Basic realm="…".
    2. El navegador muestra la ventana y, a partir de ahí, manda en cada petición la cabecera Authorization: Basic … con usuario y contraseña en Base64.
    3. Base64 no es cifrado, solo una codificación: cualquiera que intercepte el tráfico lo lee. Úsalo siempre con HTTPS.

    🎯 Para qué se usa (y qué tiene que ver con el SEO)

    • Entornos de pruebas o staging. Es la forma más segura de que una copia de la web no acabe en Google: Googlebot recibe un 401 y no puede leer nada. Un Disallow en el robots.txt no impide que la URL se indexe, y una etiqueta noindex obliga a dejar rastrear; la contraseña corta las dos cosas de raíz.
    • Webs en desarrollo antes del lanzamiento, o secciones privadas para clientes.
    • Una capa extra delante de wp-login.php o /wp-admin/ en WordPress, para frenar los ataques de fuerza bruta antes de que lleguen a PHP.

    ⚠️ Si proteges una web que ya está publicada, Google dejará de poder rastrearla y, con el tiempo, sus páginas saldrán del índice. Y al lanzar una web que estaba protegida, acuérdate de quitar la contraseña.

    🔐 Qué cifrado elegir

    CifradoPrefijoApache 2.4nginxSeguridad
    bcrypt$2y$✅✅ con el crypt() del sistema (Linux actual)🟢 La mejor: lenta a propósito y con coste ajustable
    APR1-MD5$apr1$✅ (el de htpasswd por defecto)✅🟡 Aceptable; rápida de atacar con tarjetas gráficas
    SHA-512 crypt$6$✅ en Linux · ❌ en Windows✅🟢 Buena, con sal y miles de rondas
    SHA-1{SHA}✅✅🔴 Sin sal: solo si no queda otra

    Si no sabes qué servidor tienes, bcrypt es la opción por defecto y APR1-MD5 la que funciona en todas partes. Equivalen a htpasswd -B y htpasswd -m en la terminal; SHA-512 es lo que da openssl passwd -6.

    📁 Dónde dejar el archivo

    • Fuera de la carpeta pública (por ejemplo /home/usuario/.htpasswd, al lado de public_html y no dentro). Así nadie puede descargarlo aunque falle la configuración.
    • La ruta de AuthUserFile (Apache) y de auth_basic_user_file (nginx) tiene que ser absoluta.
    • Apache bloquea por defecto los archivos que empiezan por .ht; nginx no, por eso en su fragmento va el bloque que los deniega.
    • Después de tocar la configuración de nginx hay que recargarlo (nginx -t y systemctl reload nginx); el .htaccess de Apache se aplica al momento.
    Si tienes algún feedback, comentario, necesidad de soporte o detectas un fallo en mis herramientas puedes contactarme en mi LinkedIn