linux-header

Proteger un sitio en desarrollo con htpasswd

Hay mucho tutorial de como hacerlo pero esta solución es la menos invasiva a mi parecer.

Mi situación es la siguiente: Tengo varios site en el servidor de desarrollo quiero que todos tengan que pasar por un login para que no acceda todo Dios.  Tampoco quiero configurar el htpasswd en el .htaccess del site que estoy desarrollando porque tengo que andar evitándolo en GIT. La solución es que el htpasswd esté configurado a nivel vhost y las claves almacenadas en un directorio común para todas ellas.

1: Crea un directorio en el que almacenar todas las claves y créalas

Por ejemplo yo he creado un directorio en /home/deploy/htpasswd y se la he cedido a www-data con chown www-data. /home/deploy/htpasswd -R

Ahora que tengo un directorio donde meter las claves de los sites ya puedo crear un usuario y clave para cada site. por ejemplo:

.foo_site no es mas que el nombre del archivo que almacena la clave. se puede llamar como te de la gana.

usuario_para_foo_site es el nombre de usuario que voy a crear para este site. La clave te la pide cuando des enter.

Los pasos anteriores los podes hacer para todos los sites que quieras tener bajo llave. Pero todavía no usando estas claves. Vamos a solucionarlo:

2: asignar claves a cada site

Ya tenemos las claves almacenadas en archivos individuales bajo /home/deploy/htpasswd. Solo nos queda ir a cada uno de los vhost y decirle que usen estos archivos:

Este es un ejemplo:

Del vhost anterior lo importante es esto.

Y eso es todo. reinician apache y de ahora en mas se les va a pedir el usuario y clave que hayan creado en /home/deploy/htpasswd/.foo_site

Resumiendo: Esta me parece una solución ideal para no andar tocando el código del sitio que estas desarrollando, por otro lado el tener todas las claves en un mismo lugar hace mas fácil mantenerlas.

 

Ahora si, chau!