AWS Beanstalk redirige toutes les applications avec http sur https

L'équilibrage de charge aws Redirige toutes les demandes https Par exemple ec2 à travers le port 80. J'ai besoin de rediriger toute la demande HTTP à https.

Jusqu'à présent, j'ai réalisé que vous avez besoin de changer de copie ec2 En utilisant des règles de redirection, puis enregistrez une instance comme neuve AMI Et spécifier beanstalk sur nouveau AMI.

J'ai trouvé la prochaine règle d'écrasement, mais malheureusement, je ne sais pas quoi faire avec ça.

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule ^/(.*)$ [url=https://%]https://%[/url]{SERVER_NAME}%{REQUEST_URI} [L,R=301]

je ssh'd Dans votre copie ec2 et est allé

/etc/httpd/

Et c'est tout ce que j'ai fait. J'ai été complètement perdu dans quoi faire de là.

Puis-je changer le fichier ou créer un nouveau?

Si je dois changer ou créer un nouveau fichier, où serait-il ou que l'appellerais-je et où irait-il?

Quelqu'un peut-il fournir des contenus de fichiers précis?

Que dois-je faire après avoir créé / Changements dans ce fichier? Puis-je juste aller à la page ec2, Installez la case à cocher à côté de mon instance, cliquez sur les actions et, enfin, créez une image?

Si oui, qu'est-ce que tout cela signifie? Je ne sais pas quels paramètres j'ai ici.

Enfin, je suppose que je vais juste entrer dans la configuration sur ma barre d'outils beanstalk Et juste pointer mon env beanstalk Sur mon nouveau AMI Et redémarrez le serveur. Ça sonne bien?

Si quelqu'un sait comment le faire, ou le site Web décrivant en détail le processus, je l'apprécierais.

Je veux noter que j'utilise l'application Java sur Tomcat. Je ne sais pas si le personnalisable affectera AMI augmenter la taille des serveurs.
Invité:

Catherine

Confirmation de:

Donc, vous devez faire quelques choses

Dans votre équilibrage de charge, les deux auditeurs doivent être définis, c'est-à-dire pour le port 80 et port 443

en copie ec2, dans

/etc/httpd/conf.d/elasticbeanstalk.conf

- Ajoutez votre règle de réécriture à la section hôte virtuelle

Après cela, quand cela fonctionne, vous voudrez peut-être créer une image ami, Pour conserver ces paramètres dans l'image ami, Que vous pouvez utiliser plus tard pour créer des instances supplémentaires.

Emilie

Confirmation de:

Bien que ce ne soit pas ce que vous avez demandé, nous le faisons à travers
http://docs.aws.amazon.com/Ama ... .html
. C'est beaucoup plus facile que ce que vous offrez et vous obtenez tous les avantages supplémentaires. CloudFront CDN, Faciliter la charge sur vos instances beanstalk ec2.

Premier configuration

Se propager

de

origine

qui indique votre équilibrage de charge beanstalk (Vous pouvez également créer votre propre origine indiquant votre nom de domaine élastique beanstalk).

Puis créer

comportement

Avec la "politique de contrôle de protocole" sur "Redirection HTTP sur HTTPS».

Le seul accroc est que vous pourriez avoir besoin
http://docs.aws.amazon.com/IAM ... .html
Votre certificat SSL pour ajouter un "chemin" afin qu'il puisse être utilisé dans CloudFront.

aws iam upload-server-certificate --server-certificate-name certificate_object_name --certificate-body file://public_key_certificate_file --private-key file://privatekey.pem --certificate-chain file://certificate_chain_file  --path cloudfront_path

Alice

Confirmation de:

Pour ceux qui ont du mal pendant un certain temps, j'ai trouvé GitHub (de l'équipe AWS) Avec toutes les configurations AWS, Et ça marche pour rediriger pour Apache 2.2. (Configations pour Apache 2.4 et Nginx Voir ci-dessous).

Apache 2.2


Créez un fichier dans le répertoire racine de votre application:

Root_proekt / .ebextensions / httpd / conf.d / elasticbeanstalk.conf

(Utilisant Java IntelliJ Assurez-vous qu'il est ajouté au dernier artefact .WAR)

Ajoutez les lignes suivantes pour allumer la redirection sur l'hôte virtuel:

<virtualhost *:80="">
LoadModule rewrite_module modules/mod_rewrite.so
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTP_USER_AGENT} !ELB-HealthChecker
RewriteRule (.*) [url=https://%]https://%[/url]{HTTP_HOST}%{REQUEST_URI}

<proxy *="">
Order deny,allow
Allow from all
</proxy>

ProxyPass / [url=http://localhost:8080/]http://localhost:8080/[/url] retry=0
ProxyPassReverse / [url=http://localhost:8080/]http://localhost:8080/[/url]
ProxyPreserveHost on

ErrorLog /var/log/httpd/elasticbeanstalk-error_log
</virtualhost>

Pour voir plus d'exemples pour Apache 2.4 et Nginx, Visitez ce référentiel GitHub:

https://github.com/awsdocs/ela ... omcat
De plus, de nombreuses autres configurations et exemples utiles sont disponibles.

avec respect

Catherine

Confirmation de:

Créer un fichier nommé

elasticbeanstalk.conf

à l'intérieur du dossier

/src/main/webapp/.ebextensions/httpd/conf.d/

Dans le catalogue de votre projet.

Copier et insérer
https://raw.githubusercontent. ... .conf
déposer. elasticbeanstalk.conf.

Supprimer les lignes suivantes.

     Order deny,allow
Allow from all

Et mettre cette ligne à la place.

     Require all granted

Changer la chaîne

   RewriteRule (.*) [url=https://%]https://%[/url]{HTTP_HOST}%{REQUEST_URI}

à

   RewriteRule (.*) [url=https://%]https://%[/url]{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Enregistrez maintenant le fichier, emballez votre projet et développez-le.

Pour répondre aux questions, connectez-vous ou registre