Añadir un proxy reverso con certificado SSL

Ahora que Google se ha puesto serio con los certificados SSL en la Web, todo el mundo se ha puesto manos a la obra para convertir sus páginas de http a https. Y es que si antes Google te decía que tu web era segura cuando la encontraba bajo el protocolo https, ahora hace lo contrario… si no tienes https te marca como página insegura. Esto premia a los sitios Web que instalan el certificado y cifran el canal por el que viaja la información, aunque tampoco es una garantía 100% de que no vayan a interceptar la información.

Obtener un certificado es gratuito ahora con https://letsencrypt.org/ y muchos de los proveedores de hosting actuales ya lo incluyen en sus servicios sin coste adicional, aunque cabe decir que este certificado no es válido para portales de comercio electrónico. Existen varios niveles de certificado, unos más caros que otros, pero eso ya es otro tema que está al margen de lo que trata este artículo y me estoy yendo por las ramas.

¿Qué es un proxy reverso y para qué lo utilizo?

En algunos proyectos utilizo WordPress, que es el CMS más utilizado. Se calcula que el 25% de los sitios Web de Internet están hechos con este gestor de contenidos, y por lo tanto es el que más ataques sufre. Por esa razón, si lo utilizo dentro de una carpeta de un servidor Web me gusta que no esté alojado en el mismo entorno, si no en otro completamente distinto. Esto sirve para evitar que si el WordPress es hackeado afecte al resto de aplicaciones que hay en el servidor principal.

El proxy reverso es una configuración de Apache que permite que una carpeta ficticia de un servidor Web busque el contenido en otro servidor. Por ejemplo, veamos un código añadido en un virtual host de apache que tiene montado un proxy reverso:

Con estas dos líneas le estoy diciendo a Apache que todas las peticiones de mi servidor que empiecen por http://www.example.com/carpeta las vaya a buscar al servidor 192.168.1.1 donde habrá otro apache sirviendo otra web, que en el ejemplo que os he comentado es donde tengo instalado el WordPress.

Problema con SSL

El problema viene cuando instalamos el certificado SSL. Ahora mi URL es https://www.example.com/carpeta, pero cuando voy a buscar algo al proxy reverso no lo encuentra, por lo que tengo que instalar el mismo certificado en el servidor al que apunta el proxy reverso. Es decir, ahora tengo que poner las directivas así:

Ya empieza a encontrar recursos, pero seguimos encontrando problemas en determinadas URLs del proxy reverso. Y es normal porque aunque nuestro certificado esté instalado en el servidor al que apunta el proxy, no se corresponde con su dominio. El certificado garantiza que https://www.example.com es seguro, pero está instalado también en http://192.168.1.1 por lo que se produce una incoherencia que debemos subsanar, y lo hacemos con todas estas directivas:

Primero activamos la negociación SSL en apache y después le decimos que no verifique que la propiedad del proxy reverso es auténtica. Tras reiniciar apache deberíamos poder ya acceder sin problemas a todos los recursos del servidor al que apunta el proxy reverso y navegar de forma normal.

Experto en la Gestión de Proyectos Web basados en Drupal con más de 8 años de experiencia. Desarrollo Full Stack (Front-end, Back-end, Site-Builder).

No Replies to "Añadir un proxy reverso con certificado SSL"