Blog

Cómo redirigir HTTPs de un dominio sin errores de certificado

Contenidos

Si tienes un dominio y quieres reenviarlo a otro, la mayoría de los proveedores de dominios hacen que esto sea bastante trivial para las llamadas HTTP. Por ejemplo, en GoDaddy puedes configurar el Reenvío de Dominio y éste se encargará de hacerlo por ti, ya sea emitiendo una redirección HTTP o enmascarando tu dominio con el dominio al que quieres reenviarlo. Sin embargo, aunque esto hace que redirigir una llamada HTTP sea relativamente sencillo, donde suele fallar es cuando quieres redirigir HTTPS de ‘dominio1.com’ a ‘dominio2.com’. Si utilizas el redireccionamiento de dominios de GoDaddy, al intentar acceder a https://domain1.com en tu navegador se producirá un error de certificado.

En este artículo, mostraremos cómo resolver este problema de forma rápida y sin el uso de ningún servidor intermedio o de cualquier enredo en los archivos .htaccess, todo a través del uso de Amazon Web Services.

Enfoque

A alto nivel, vamos a redirigir tanto HTTP como HTTPs para dominio1.com a dominio2.com aprovechando un Application Load Balancer (ALB) de AWS , un certificado aprovisionado por AWS y una configuración de regla de redirección en el Application Load Balancer.

Ventajas de este enfoque:

  • No es necesario pagar por un certificado SSL para el dominio1.com
  • No es necesario crear un servidor y utilizar un archivo .htaccess a nivel de Apache o NGINX para realizar la redirección.
  • Evita cualquier problema de SEO al implementar una redirección HTTP permanente de dominio1.com a dominio2.com

Contras de este enfoque:

Aunque se ahorra el coste del certificado, pagarás el coste del ALB, que es de al menos 15 €/mes. Ten en cuenta que si ya tienes un ALB configurado para un propósito diferente, puedes reutilizar ese ALB existente para implementar esta solución.

Requisitos previos:

A lo largo de este ejemplo nos referiremos a dominio1.com como el dominio que queremos redirigir y a dominio2.com como el objetivo de esa redirección.

1.) Una cuenta de AWS.

2.) Acceso a la configuración de DNS para el dominio1.com.

Pasos para configurar una redirección HTTPS del dominio1.com al dominio2.com

1.) Aprovisionamiento de un certificado para el Dominio1 en el Administrador de Certificados de AWS

– Inicia sesión en tu consola de administración de AWS y abre el administrador de certificados.

Aprovisiona un certificado público, para el nombre de dominio introduce «dominio1.com», y opcionalmente, «*.dominio1.com» para que puedas usar este certificado para todos los subdominios también.

  • Elige utilizar la validación de DNS, se te mostrarán dos valores DNS CNAME para copiar al DNS de dominio1.com. Ambos son iguales, por lo que en realidad sólo tienes que añadir uno de ellos. El registro CNAME que te indica que añadas tendrá el siguiente aspecto:

Nombre: <alfanumérico aleatorio>.dominio1.com

Valor: <alfanumérico aleatorio>.<alfanumérico aleatorio>.acm-validación.aws. (¡observa que debes asegurarte de añadir el punto final al valor!)

  • Accede a tu proveedor de DNS y añade el registro CNAME del paso anterior a las entradas DNS de su dominio1.com.
  • Vuelve a la consola del Administrador de Certificados y haz clic en el botón de actualización. Después de uno o dos minutos, deberías ver que el estado del certificado cambia a «Emitido». No continúes con el siguiente paso hasta que vea “Emitido».

2.) Crear el Application Load Balancer en la consola de AWS EC2

  • Inicia sesión en la consola de gestión de EC2, en Load Balancers, haz clic en «Create Load Balancer”.
  • Elige «Application Load Balancer”.
  • Dale un nombre a tu balanceador de carga, deja la mayoría de los valores por defecto, sin embargo en «Listeners», haz clic en «Add Listener”.
  • Elige «HTTPS (Secure HTTP)» en el siguiente menú desplegable.
  • Elige al menos 2 subredes para que el equilibrador de carga esté activo, los valores para estos realmente no importan, así que sólo selecciona las dos primeras opciones.
  • En la siguiente página «Configurar los ajustes de seguridad», asegúrate de que en «Tipo de certificado» esté seleccionado «Elegir un certificado de ACM”.
  • En el cuadro desplegable que aparece debajo, selecciona el certificado que aprovisionaste en la sección anterior.
  • Continúa con el resto del asistente de configuración del equilibrador de carga. Puedes aceptar la mayoría de los valores por defecto, realmente no estamos utilizando el equilibrador de carga así que no importa cómo se configure el resto.
  • Una vez creado el equilibrador de carga, en la pantalla resultante anota el nombre DNS del equilibrador de carga, que terminará con “elb.amazonaws.com».

3.) Añadir regla de redirección al listener HTTPs en el balanceador de carga para redirigir el dominio1.com al dominio2.com

  • En la lista de balanceadores de carga en la consola de AWS, selecciona el balanceador de carga que acabamos de crear, cambia a la pestaña de Listeners y luego bajo reglas haz clic en «View/Edit Rules”.
  • En la siguiente pantalla, vamos a añadir una regla de redirección muy sencilla que redirigirá las llamadas HTTPS a dominio1.com a dominio2.com.
  • En «Host Header is», añade “domain1.com».
  • En «Redirigir a», cambia el valor de Host a “dominio2.com».

4.) Añade una entrada DNS para apuntar el dominio 1 al equilibrador de carga de la aplicación

  • Tomando nota del nombre DNS del equilibrador de carga que hemos creado anteriormente, entra en tu host DNS y añade un nuevo registro CNAME:
  • Host: @
  • Valor: <Nombre DNS del equilibrador de carga>

Y ya está. Ahora has redirigido tu dominio original tanto para HTTP como para HTTPS a un nuevo dominio y has evitado que se muestren errores de certificado en el navegador.

Artículos destacados

From offline to online.

Comparte tus ideas con nosotros