Comment puis-je configurer le protocole HTTPS pour mon environnement Elastic Beanstalk ?
Je souhaite configurer le protocole HTTPS pour mon environnement AWS Elastic Beanstalk afin de chiffrer les données de mon équilibreur de charge vers mon instance Amazon Elastic Compute Cloud (Amazon EC2).
Brève description
Si vous avez configuré un nom de domaine personnalisé pour votre environnement Elastic Beanstalk, utilisez le protocole HTTPS afin de permettre aux utilisateurs de se connecter en toute sécurité à votre site Web. Si vous n'avez pas de nom de domaine, utilisez le protocole HTTPS avec un certificat auto-signé à des fins de développement et de test.
Pour les environnements à instance unique, vous devez créer la clé privée et le certificat en local. Chargez ensuite le certificat sur Gestion des identités et des accès AWS (AWS IAM).
Il est recommandé d'utiliser des équilibreurs de charge avec AWS Certificate Manager (ACM) pour provisionner, gérer et déployer vos certificats de serveur par programmation. Vous pouvez également utiliser l'interface de la ligne de commande AWS (AWS CLI) pour charger un certificat tiers ou auto-signé et une clé privée dans IAM. Si ACM n'est pas disponible dans votre région AWS, utilisez l'AWS CLI.
Résolution
Préparer votre environnement Elastic Beanstalk
Utilisez Amazon Route 53 pour enregistrer un nouveau domaine ou un autre fournisseur de domaine pour acheminer le trafic vers votre environnement Elastic Beanstalk.
Si l'URL de votre environnement inclut une région, créez un nom d'alias. Si l'URL de votre environnement n'inclut pas de région, créez un enregistrement CNAME.
Important : Vous pouvez utiliser des enregistrements CNAME pour des environnements créés avant 2016. Vous ne pouvez pas utiliser un enregistrement CNAME avec un domaine de zone apex, également connu sous le nom de domaine racine ou domaine nu. Pour plus d'informations, consultez la section Comparaison des enregistrements d’alias et CNAME.
Puis, créez un certificat dans ACM ou chargez un certificat tiers ou auto-signé et une clé privée dans IAM.
Ajouter des écouteurs à vos équilibreurs de charge
Procédez comme suit :
- Ouvrez la console Elastic Beanstalk.
- Sélectionnez votre environnement.
- Dans le volet de navigation, choisissez Configuration.
- Dans la catégorie Équilibreur de charge, choisissez Modifier.
- Pour ajouter l'écouteur pour le port 443, suivez les instructions relatives à l'équilibreur de charge dans votre environnement Elastic Beanstalk.
Remarque : Il est recommandé d'utiliser un Application Load Balancer ou un Network Load Balancer.
Pour un Application Load Balancer
Procédez comme suit :
- Choisissez Ajouter un écouteur.
- Dans Port, saisissez le port du trafic entrant. Par exemple, 443.
- Dans Protocole, choisissez HTTPS.
- Dans Certificat SSL, choisissez votre certificat, puis sélectionnez la politique SSL dans la liste déroulante.
- Choisissez Ajouter, puis Appliquer.
Pour un Network Load Balancer
Procédez comme suit :
- Choisissez Ajouter un écouteur.
- Dans Port, saisissez le port du trafic entrant. Par exemple, 443.
- Choisissez Ajouter, puis Appliquer.
Pour un Classic Load Balancer
Procédez comme suit :
- Choisissez Ajouter un écouteur.
- Dans Port, saisissez le port du trafic entrant. Par exemple, 443.
- Dans Protocole, choisissez HTTPS.
- Dans Port de l'instance, saisissez 80.
- Dans Protocole de l'instance, choisissez HTTP.
- Dans Certificat SSL, choisissez votre certificat, puis sélectionnez la politique SSL dans la liste déroulante.
- Choisissez Ajouter, puis Appliquer.
Configurer vos instances pour arrêter les connexions HTTPS
Pour configurer vos instances afin d'arrêter les connexions HTTPS, utilisez le fichier de configuration .ebextensions pour modifier le logiciel qui s'exécute sur les instances. Pour plus d'informations, consultez la section Résiliation du protocole HTTPS sur les instances Amazon EC2 exécutant .NET Core sous Linux. Vous pouvez également utiliser les fichiers de configuration pour modifier les groupes de sécurité afin qu'ils autorisent des connexions sécurisées.
Important : Si vous utilisez un environnement à instance unique, ignorez les instructions suivantes. Suivez les étapes de la section Arrêter le protocole HTTPS sur l'instance (HTTPS de bout en bout) dans un environnement à instance unique.
Pour configurer vos instances afin d'arrêter les connexions HTTPS, procédez comme suit :
-
Ajoutez un écouteur sécurisé à votre équilibreur de charge. Utilisez l'un des fichiers de configuration suivants en fonction du type d'équilibreur de charge qui se trouve dans votre environnement Elastic Beanstalk.
Pour un Classic Load Balancer, utilisez le fichier .ebextensions/https-reencrypt-clb.config :option_settings: aws:elb:listener:443: InstancePort: 443 InstanceProtocol: HTTPS aws:elasticbeanstalk:application: Application Healthcheck URL: HTTPS:443/Pour un Application Load Balancer, utilisez le fichier .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: HTTPSPour un Network Load Balancer, utilisez le fichier .ebextensions/https-reencrypt-nlb.config :
option_settings: aws:elbv2:listener:443: DefaultProcess: https ListenerEnabled: 'true' aws:elasticbeanstalk:environment:process:https: Port: '443' -
Mettez à jour l'équilibreur de charge pour recevoir le trafic sur le port 443.
Vous pouvez créer un nouveau groupe de sécurité, puis demander à Elastic Beanstalk de l'utiliser pour recevoir du trafic sur le port 443. Par exemple, le fichier .ebextensions/https-lbsecuritygroup.config ci-dessous permet de créer un groupe de sécurité et de l'associer à l'équilibreur de charge :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/0Remarque : Remplacez VpcId par la valeur correspondant à votre environnement. L'exemple précédent inclut l'entrée et la sortie via le port 80 pour autoriser les connexions HTTP. Pour autoriser uniquement les connexions sécurisées, supprimez la configuration du port 80 dans la section SecurityGroupIngress.
-
Ajoutez des règles d'entrée et de sortie qui autorisent la communication via le port 443 entre le groupe de sécurité de l'équilibreur de charge et le groupe de sécurité des instances.
Par exemple, utilisez le fichier .ebextensions/https-backendsecurity.config suivant :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"]} -
Ajoutez l'extrait suivant à votre fichier de configuration, puis enregistrez-le dans le répertoire .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-----Remarque : Remplacez contenu du fichier de certificat par le contenu de votre fichier de certificat et contenu de la clé privée par le contenu de votre clé privée.
La configuration de résiliation HTTPS varie en fonction de votre pile de solutions. Les .ebextensions de n'importe quelle pile de solutions codent en dur la valeur de la clé privée et du certificat de serveur dans les .ebextensions. Pour sécuriser davantage ces fichiers, chargez le contenu des fichiers dans Amazon Simple Storage Service (Amazon S3), puis utilisez S3Auth pour les transférer vers Amazon EC2.
-
Utilisez la clé de fichiers pour créer les fichiers suivants sur l'instance /etc/pki/tls/certs/server.crt.
-
Utilisez le fichier de certificat suivant pour créer le fichier de certificat sur l'instance :
-----BEGIN CERTIFICATE----- certificate file contents -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- first intermediate certificate -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- second intermediate certificate -----END CERTIFICATE-----Remarque : Remplacez contenu du fichier de certificat par le contenu de votre certificat. Si vous disposez de certificats intermédiaires, incluez-les dans server.crt après le certificat de votre site.
-
Utilisez /etc/pki/tls/certs/server.key pour créer le fichier de clé privée sur l'instance.
Remarque : Remplacez contenu de la clé privée par le contenu de la clé privée utilisée pour créer la demande de certificat ou le certificat auto-signé. -
Configurez le serveur proxy qui s'exécute sur l'instance pour résilier le protocole HTTPS. Toutes les plateformes démarrent la configuration du serveur proxy de manière uniforme.
-
Ajoutez les fichiers de configuration à un répertoire nommé .ebextensions à la racine de votre ensemble d'applications pour déployer des fichiers de configuration dans votre environnement.
-
Déployez le code source qui inclut les fichiers de configuration.
Arrêter le protocole HTTPS sur l'instance (HTTPS de bout en bout) dans un environnement à instance unique
Utilisez le fichier .ebextensions pour autoriser le trafic entrant sur le port 443 vers l'instance sur laquelle s'exécute votre application Elastic Beanstalk.
Exemple :
Resources: sslSecurityGroupIngress: Type: AWS::EC2::SecurityGroupIngress Properties: GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]} IpProtocol: tcp ToPort: 443 FromPort: 443 CidrIp: 0.0.0.0/0
Puis, configurez le serveur proxy qui s'exécute sur l'instance pour résilier le protocole HTTPS.
Remarque : La configuration de résiliation HTTPS varie en fonction de votre pile de solutions. Les .ebextensions de n'importe quelle pile de solutions codent en dur la valeur de la clé privée et du certificat de serveur dans les .ebextensions. Pour sécuriser davantage ces fichiers, chargez le contenu des fichiers dans Amazon Simple Storage Service (Amazon S3) et utilisez S3Auth pour les transférer vers Amazon EC2.
Pour déployer des fichiers de configuration dans votre environnement, ajoutez-les au répertoire .ebextensions à la racine de votre ensemble d'applications. Déployez ensuite le code source qui inclut les fichiers de configuration.
- Sujets
- Compute
- Balises
- AWS Elastic Beanstalk
- Langue
- Français

Contenus pertinents
- demandé il y a 2 ans
- demandé il y a 3 ans
- demandé il y a 3 ans