Je souhaite configurer un certificat SSL pour mon application qui s'exécute sur AWS Elastic Beanstalk.
Brève description
Pour activer le cryptage SSL pour votre application qui s'exécute sur Elastic Beanstalk, effectuez l'une des actions suivantes :
- Mettre fin à une connexion HTTPS au niveau de l'équilibreur de charge
- Mettre fin à une connexion HTTPS au niveau de l'instance
- Rediriger HTTP vers HTTPS
Résolution
Mettre fin à une connexion HTTPS au niveau de l'équilibreur de charge
Pour mettre à jour votre environnement Elastic Beanstalk afin d'utiliser une connexion HTTPS, vous devez configurer un écouteur HTTPS pour l'équilibreur de charge de votre environnement. Il existe deux types d'équilibreurs de charge qui prennent en charge un écouteur HTTPS :
- Classic Load Balancer
- Application Load Balancer
Pour plus d'informations, consultez la section Configuration de l'équilibreur de charge de votre environnement Elastic Beanstalk pour mettre fin à une connexion HTTPS.
Mettre fin à une connexion HTTPS au niveau de l'instance
Pour utiliser le protocole HTTPS avec un environnement à instance unique ou configurer votre équilibreur de charge de manière à transmettre le trafic sans déchiffrement, vous pouvez utiliser des crochets de plate-forme. Utilisez les crochets de plate-forme pour configurer le serveur proxy qui transmet le trafic à une application afin de mettre fin aux connexions HTTPS. Le fichier hook dépend du type de plateforme Elastic Beanstalk. Pour plus d'informations, consultez la section Configuration de votre application pour mettre fin aux connexions HTTPS au niveau de l'instance.
Remarque : Étant donné que les plateformes Amazon Linux AMI (AL1) ont été retirées, il est recommandé d'utiliser des crochets de plate-forme pour ajouter des modifications au serveur proxy. Déplacez les fichiers de configuration du proxy précédemment fournis dans le répertoire .ebextensions/nginx de la plateforme AL1 vers le répertoire platform/nginx de crochets de la plateforme AL2. Pour étendre la configuration NGINX par défaut d'Elastic Beanstalk, ajoutez les fichiers de configuration .conf à un dossier nommé .platform/nginx/conf.d/ dans votre application bundle source. La configuration NGINX d'Elastic Beanstalk inclut automatiquement les fichiers .conf dans ce dossier :
~/workspace/my-app/
|-- .platform
| `-- nginx
| `-- conf.d
| `-- myconf.conf
`--
Pour remplacer la configuration NGINX par défaut d'Elastic Beanstalk, incluez une configuration dans votre bundle source sur .platform/nginx/nginx.conf :
~/workspace/my-app/
|-- .platform
| `-- nginx
| `-- nginx.conf
`--
Si vous remplacez la configuration NGINX d'Elastic Beanstalk, insérez les configurations d'Elastic Beanstalk. L'intégration des configurations permet d'améliorer les rapports et la surveillance de l'intégrité, le mappage automatique des applications et les fichiers statiques. Pour intégrer les configurations, ajoutez la ligne suivante à votre fichier nginx.conf :
include conf.d /elasticbeanstalk/ *.conf;
Pour plus d'informations sur la configuration d'un proxy, consultez la section Configuration inverse du proxy.
**Remarque :**Vous pouvez recevoir un avertissement dans le journal des erreurs du proxy qui indique nginx : [avertissez que] la directive « ssl » est obsolète, utilisez la directive « listen... ssl ». Pour éviter cet avertissement, utilisez le fichier .conf suivant et stockez-le dans le dossier des crochets de la plateforme pour mettre fin au SSL au niveau de l'instance :
listen 443 ssl;
server_name localhost;
location / {
proxy_pass http://localhost:app_port;
proxy_set_header Connection "";
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
}
}
Rediriger HTTP vers HTTPS
La redirection HTTP vers HTTPS gère le trafic non sécurisé initié par le client et le redirige vers HTTPS. Si vous utilisez un équilibreur de charge d'application ou une instance unique pour la redirection, consultez la section Configuration de la redirection HTTP vers HTTPS.
Par défaut, les équilibreurs de charge classiques ne peuvent pas rediriger le trafic HTTP vers HTTPS. Au lieu de cela, configurez vos règles de réécriture pour les instances de serveur Web qui se trouvent derrière le l’équilibreur de charge classique. Pour plus d'informations, consultez la section Comment rediriger le trafic HTTP vers HTTPS sur mon équilibreur de charge classique ?