Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
¿Cómo puedo configurar HTTPS para mi entorno de Elastic Beanstalk?
Quiero configurar HTTPS para mi entorno de AWS Elastic Beanstalk y así poder cifrar los datos del equilibrador de carga en mi instancia de Amazon Elastic Compute Cloud (Amazon EC2).
Descripción corta
Si has configurado un nombre de dominio personalizado para tu entorno de Elastic Beanstalk, utiliza HTTPS para permitir que los usuarios se conecten a tu sitio web de forma segura. Si no tienes un nombre de dominio, utiliza HTTPS con un certificado autofirmado para fines de desarrollo y prueba.
Para los entornos de instancia única, debes crear localmente la clave privada y el certificado. A continuación, carga el certificado en AWS Identity and Access Management (IAM).
Se recomienda utilizar equilibradores de carga con AWS Certificate Manager (ACM) para aprovisionar, administrar y desplegar tus certificados de servidor de forma programática. También puedes utilizar la interfaz de la línea de comandos de AWS (AWS CLI) para cargar un certificado de terceros o autofirmado y una clave privada a IAM. Si ACM no está disponible en tu región de AWS, utiliza la AWS CLI.
Resolución
Preparación del entorno de Elastic Beanstalk
Usa Amazon Route 53 para registrar un nuevo dominio u otro proveedor de dominios para dirigir el tráfico a tu entorno de Elastic Beanstalk.
Si la URL de tu entorno incluye una región, crea un nombre de alias. O bien, crea un registro CNAME si la URL de tu entorno no incluye una región.
Importante: Para entornos creados antes de 2016, puedes utilizar registros CNAME. No puedes utilizar un registro CNAME con un dominio de vértice de zona (también conocido como dominio raíz o dominio simple). Para obtener más información, consulta Comparación de alias y registros CNAME.
A continuación, crea un certificado en ACM o carga un certificado firmado por terceros o autofirmado y una clave privada a IAM.
Agregar agentes de escucha a los equilibradores de carga
Sigue estos pasos:
- Abre la consola de Elastic Beanstalk.
- Selecciona tu entorno.
- En el panel de navegación, selecciona Configuración.
- En la categoría Equilibrador de carga, elige Modificar.
- Para agregar el agente de escucha para el puerto 443, completa los pasos del equilibrador de carga que se encuentra en tu entorno de Elastic Beanstalk.
Nota: Se recomienda utilizar un equilibrador de carga de aplicación o un equilibrador de carga de red.
Para el equilibrador de carga de aplicación
Sigue estos pasos:
- Selecciona Agregar un agente de escucha.
- En Puerto, introduce el puerto de tráfico entrante. Por ejemplo, 443.
- En Protocolo, selecciona HTTPS.
- En Certificado SSL, elige el certificado y, a continuación, selecciona la política SSL de la lista desplegable.
- Elige Agregar y, a continuación, selecciona Aplicar.
Para el equilibrador de carga de red
Sigue estos pasos:
- Selecciona Agregar un agente de escucha.
- En Puerto, introduce el puerto de tráfico entrante. Por ejemplo, 443.
- Elige Agregar y, a continuación, selecciona Aplicar.
Equilibrador de carga clásico
Sigue estos pasos:
- Selecciona Agregar un agente de escucha.
- En Puerto, introduce el puerto de tráfico entrante. Por ejemplo, 443.
- En Protocolo, selecciona HTTPS.
- En Puerto de instancia, introduce 80.
- En Protocolo de instancia, elige HTTP.
- En Certificado SSL, elige el certificado y, a continuación, selecciona la política SSL de la lista desplegable.
- Elige Agregar y, a continuación, selecciona Aplicar.
Configuración de instancias para detener las conexiones HTTPS
Para configurar las instancias para detener las conexiones HTTPS, usa el archivo de configuración .ebextensions para modificar el software que se ejecuta en las instancias. Para obtener más información, consulta Terminar HTTPS en instancias de Amazon EC2 que ejecutan .NET Core en Linux. También puedes usar archivos de configuración para modificar los grupos de seguridad de modo que permitan conexiones seguras.
Importante: Si utilizas un entorno de instancia única, omite los pasos siguientes. A continuación, completa los pasos de la sección Detener HTTPS de la instancia (HTTPS de extremo a extremo) en un entorno de instancia única.
Para configurar tus instancias para detener las conexiones HTTPS, sigue estos pasos:
-
Agrega un agente de escucha seguro a tu equilibrador de carga. Utiliza uno de los siguientes archivos de configuración según el tipo de equilibrador de carga de tu entorno de Elastic Beanstalk.
Para un equilibrador de carga clásico, utiliza un archivo .ebextensions/https-reencrypt-clb.config:option_settings: aws:elb:listener:443: InstancePort: 443 InstanceProtocol: HTTPS aws:elasticbeanstalk:application: Application Healthcheck URL: HTTPS:443/Para un equilibrador de carga de aplicación, utiliza el archivo .ebextensions/https-reencrypt-alb.config:
option_settings: aws:elbv2:listener:443: DefaultProcess: https ListenerEnabled: 'true' Protocol: HTTPS aws:elasticbeanstalk:environment:process:https: Port: '443' Protocol: HTTPSPara un equilibrador de carga de red, utiliza el archivo .ebextensions/https-reencrypt-nlb.config:
option_settings: aws:elbv2:listener:443: DefaultProcess: https ListenerEnabled: 'true' aws:elasticbeanstalk:environment:process:https: Port: '443' -
Actualiza el equilibrador de carga para recibir tráfico en el puerto 443.
Puedes crear un grupo de seguridad nuevo y, a continuación, hacer que Elastic Beanstalk lo utilice para recibir tráfico en el puerto 443. Por ejemplo, el siguiente archivo .ebextensions/https-lbsecuritygroup.config crea un grupo de seguridad y lo adjunta al equilibrador de carga:option_settings: # Use the custom security group for the load balancer aws:elb:loadbalancer: SecurityGroups: '`{ "Ref" : "loadbalancersg" }`' ManagedSecurityGroup: '`{ "Ref" : "loadbalancersg" }`' Resources: loadbalancersg: Type: AWS::EC2::SecurityGroup Properties: GroupDescription: load balancer security group VpcId: vpc-####### SecurityGroupIngress: - IpProtocol: tcp FromPort: 443 ToPort: 443 CidrIp: 0.0.0.0/0 - IpProtocol: tcp FromPort: 80 ToPort: 80 CidrIp: 0.0.0.0/0 SecurityGroupEgress: - IpProtocol: tcp FromPort: 80 ToPort: 80 CidrIp: 0.0.0.0/0Nota: Sustituye VpcId por el valor de tu entorno. El ejemplo anterior incluye la entrada y la salida a través del puerto 80 para permitir las conexiones HTTP. Para permitir únicamente conexiones seguras, elimina la configuración del puerto 80 en la sección SecurityGroupIngress.
-
Agrega reglas de entrada y salida que permitan la comunicación a través del puerto 443 entre el grupo de seguridad del equilibrador de carga y el grupo de seguridad de las instancias.
Por ejemplo, utiliza el siguiente archivo .ebextensions/https-backendsecurity.config:Resources: # Add 443-inbound to instance security group (AWSEBSecurityGroup) httpsFromLoadBalancerSG: Type: AWS::EC2::SecurityGroupIngress Properties: GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]} IpProtocol: tcp ToPort: 443 FromPort: 443 SourceSecurityGroupId: {"Fn::GetAtt" : ["loadbalancersg", "GroupId"]} balancer security group (loadbalancersg) httpsToBackendInstances: Type: AWS::EC2::SecurityGroupEgress Properties: GroupId: {"Fn::GetAtt" : ["loadbalancersg", "GroupId"]} IpProtocol: tcp ToPort: 443 FromPort: 443 DestinationSecurityGroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]} -
Agrega el siguiente fragmento al archivo de configuración y, a continuación, guárdalo en el directorio .ebextensions:
files: /etc/pki/tls/certs/server.crt: content: | -----BEGIN CERTIFICATE----- certificate file contents -----END CERTIFICATE----- /etc/pki/tls/certs/server.key: content: | -----BEGIN RSA PRIVATE KEY----- private key contents -----END RSA PRIVATE KEY-----Nota: Sustituye el contenido del archivo de certificado por el contenido del archivo de certificado y el contenido de la clave privada por el contenido de la clave privada.
La configuración de terminación de HTTPS varía según la pila de soluciones. El .ebextensions para cualquier pila de soluciones codifica de forma rígida el valor de la clave privada y el certificado del servidor en el .ebextensions. Para proteger aún más estos archivos, carga el contenido en Amazon Simple Storage Service (Amazon S3) y, a continuación, usa S3Auth para extraerlo en Amazon EC2.
-
Usa la clave files para crear los siguientes archivos en la instancia /etc/pki/tls/certs/server.crt.
-
Usa el siguiente archivo de certificado para crear el archivo de certificado en la instancia:
-----BEGIN CERTIFICATE----- certificate file contents -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- first intermediate certificate -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- second intermediate certificate -----END CERTIFICATE-----Nota: Sustituye el contenido del archivo de certificado por el contenido de tu certificado. Si tienes certificados intermedios, inclúyelos en server.crt después del certificado del sitio.
-
Usa /etc/pki/tls/certs/server.key para crear el archivo de clave privada en la instancia.
Nota: Sustituye el contenido de la clave privada por el contenido de la clave privada utilizada para crear la solicitud de certificado o el certificado autofirmado. -
Configura el servidor proxy que se ejecuta en la instancia para que termine el HTTPS. Todas las plataformas inician la configuración del servidor proxy de forma uniforme.
-
Agrega los archivos de configuración a un directorio denominado .ebextensions en la raíz del paquete de aplicaciones para desplegar archivos de configuración en tu entorno.
-
Despliega el código fuente que incluye estos archivos de configuración.
Detención de los HTTPS de la instancia (HTTPS de extremo a extremo) en un entorno de instancia única
Utiliza el archivo .ebextensions para permitir el tráfico entrante en el puerto 443 a la instancia en la que se ejecuta la aplicación de Elastic Beanstalk.
Ejemplo:
Resources: sslSecurityGroupIngress: Type: AWS::EC2::SecurityGroupIngress Properties: GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]} IpProtocol: tcp ToPort: 443 FromPort: 443 CidrIp: 0.0.0.0/0
A continuación, configura el servidor proxy que se ejecuta en la instancia para que termine el HTTPS.
Nota: La configuración de terminación de HTTPS varía según la pila de soluciones. El .ebextensions para cualquier pila de soluciones codifica de forma rígida el valor de la clave privada y el certificado del servidor en el .ebextensions. Para proteger aún más estos archivos, carga el contenido en Amazon Simple Storage Service (Amazon S3) y usa S3Auth para extraerlo en Amazon EC2.
Para desplegar archivos de configuración en tu entorno, agrega los archivos de configuración a un directorio denominado .ebextensions en la raíz del paquete de aplicaciones. A continuación, despliega el código fuente que incluye estos archivos de configuración.
- Temas
- Compute
- Etiquetas
- AWS Elastic Beanstalk
- Idioma
- Español
Vídeos relacionados


Contenido relevante
- Respuesta aceptadapreguntada hace un año
- preguntada hace un año
OFICIAL DE AWSActualizada hace 7 meses
OFICIAL DE AWSActualizada hace 2 años