He creado un conjunto de registros A Route53 para el DNS del equilibrador de carga de aplicaciones de AWS. Mi pregunta es si el origen de AWS Cloudfront puede contener esta URL del conjunto de registros o no.
Por ejemplo: nombre DNS de ALB: xxxx.us-east-1.elb.amazonaws.com. Entrada de conjunto de registros en Route53 para el DNS del equilibrador de carga de aplicaciones: www.abc.com
¿Ahora puedo poner www.abc.com como origen en Cloudfront?
Respuesta1
Si configura el protocolo de origen en Solo HTTPS, el tráfico entre CloudFront y ELB estará protegido por TLS y podrá configurar el nombre de dominio de origen real de cualquier manera. El Cloudfront-Forwarded-Proto
encabezado indicará el protocolo utilizado entre CloudFront y el visor (ya que en esta configuración, el balanceador de carga siempre establecerá X-Forwarded-Proto: https
).
CloudFront insiste en que la negociación TLS entre él y Origin sea confiable. Un factor que comúnmente se pasa por alto es que los certificados TLS (SSL) hacen dos cosas: proporcionar cifrado de la conexión (obvio) y proporcionar autenticación del servidor: certificación de que el servidor está autorizado para ser un servidor para el nombre de host solicitado y que es no un impostor (menos obvio). Esta es la razón por la que recibe advertencias del navegador si el asunto del certificado del servidor y/o el nombre alternativo del sujeto no coincide con el nombre de host en la barra de direcciones del navegador.
CloudFront permite una excepción limitada a este requisito, lo que permite que la validación del certificado se realice correctamente siempre que se cumpla una de dos condiciones:
- El ELB debe presentar un certificado que coincida con el Nombre de Dominio de Origen,o
- El ELB debe presentar un certificado que coincida con el
Host
encabezado que CloudFront reenvía desde el navegador al ELB.
De lo contrario, CloudFront devuelve 502 Bad Gateway
.
La primera condición no es posible si utiliza el nombre de host de ELB como nombre de dominio de origen, por lo que la consola de CloudFront le solicita que incluya el Host
encabezado en la lista blanca para reenviar si ve que su destino es un ELB.
Pero mientras tu entorno se vea así...
www.example.com
apunta a CloudFront y está configurado en el nombre de dominio alternativo de la distribución, y- El
Host
encabezado está configurado para la lista blanca y - El nombre de host ELB se establece como el nombre de dominio de origen y
- El ELB tiene un certificado válido para
www.example.com
...entonces funciona, con una excepción: el dzczcexample.cloudfront.net
dominio no se puede utilizar en el navegador para acceder a su origen a través de CloudFront. En algunas configuraciones, esto es deseable, porque en realidad no desea que se pueda acceder a su contenido a través de ese segundo punto de entrada.
De lo contrario, lo mejor que puede hacer es hacer lo que sugirió: asignar un nombre de host en un dominio que usted controla al ELB en DNS y configurar ese nombre de host como el nombre de dominio de origen en CloudFront.
CloudFront puede utilizar cualquier nombre de host accesible desde Internet como origen; el origen no tiene que estar dentro de AWS. Podría, por ejemplo, utilizar un depósito de Google Cloud Storage como origen en CloudFront. La integración entre CloudFront y Origin es vaga; con esto quiero decir que CloudFront no tiene un conocimiento especial de ELB. Simplemente resuelve el nombre de host a través de DNS público y realiza conexiones.
Tenga en cuenta también que si desea asegurarse de que solo su distribución de CloudFront pueda comunicarse con su origen, deberá configurar un encabezado de origen personalizado secreto en CloudFront, y el origen debe rechazar las solicitudes que carezcan de este valor. Si bien es posible utilizar el grupo de seguridad ELB para permitir el acceso solo desde el espacio de direcciones de CloudFront, ese espacio crece con bastante frecuencia y necesita una manera de mantener sus grupos de seguridad actualizados para permitir nuevos rangos de direcciones... pero en mi opinión, esto proporciona una falsa sensación de seguridad, ya que técnicamente cualquiera puede crear una distribución de CloudFront y apuntarla a cualquier lugar, incluido su ELB. El uso de un encabezado personalizado evita esto.