J'utilise l'interface de ligne de commande Elastic Beanstalk pour déployer mon application Spring Boot sur EB. Tout fonctionne correctement tant que je ne configure pas HTTPS.Comment configurer l'équilibreur de charge classique Elastic beanstalk pour terminer HTTPS à l'aide de la CLI
Selon le userdocs tout ce que je devrais avoir besoin de faire est de créer un fichier .config dans mon .ebextensions dossier avec le contenu suivant
option_settings:
aws:elb:listener:443:
SSLCertificateId: <arn for cert>
ListenerProtocol: HTTPS
InstancePort: 5000
InstanceProtocol: HTTP
aws:elb:listener:80:
ListenerEnabled: false
Cependant, si je crée mon environnement avec cette configuration, les contrôles de santé ne en raison d'être incapable de communiquer avec l'ELB. En examinant l'environnement dans la console AWS, les ports d'écoute HTTP et HTTPS ont été désactivés et le certificat SSL n'est pas associé à l'équilibreur de charge. Étant donné le changement de comportement, je pense qu'il est sûr de dire que le fichier .config est détecté et appliqué, même si la configuration est incorrecte.
Si j'essaie manuellement d'activer l'écouteur HTTPS via l'interface graphique Web EB à ce stade, j'obtiens l'erreur suivante.
LoadBalancerHTTPSPort: You have specified both the @deprecated(:default.aws:elb:loadbalancer:LoadBalancerHTTPSPort) option as well as one in the new aws:elb:listener:443 namespace. The :default.aws:elb:loadbalancer:LoadBalancerHTTPSPort option will be ignored.
Donc je ne peux même pas l'activer manuellement même si je le voulais.
Vous trouverez ici un binch de questions/réponses sur le téléchargement de fichiers de configuration nginx personnalisés. Je crois que ceux-ci sont maintenant périmés et non applicables, mais si quelqu'un peut me diriger vers quelque chose qui fonctionne compte tenu de l'état actuel de EB, je suis heureux d'y aller.
Quelques informations de référence ci-dessous
J'utilise ACM pour héberger mon (auto-signé) cert. Pour mes besoins, les certificats auto-signés sont acceptables pendant que je teste cela. Je ne sais pas si cela perturbe l'équilibreur de charge, bien que les docs mentionnent l'utilisation de certificats auto-signés. Je passerai à un cert approprié plus tard.
Mon .elasticbeanstalk/config.yaml ressemble à ceci
branch-defaults:
default:
environment: <name>
deploy:
artifact: target/<jar name>.jar
global:
application_name: <App name>
branch: null
default_ec2_keyname: <key name>
default_platform: Java 8
default_region: eu-west-1
include_git_submodules: true
instance_profile: null
platform_name: null
platform_version: null
profile: eb-cli
repository: null
sc: null
workspace_type: Application
Le commandline je lance pour créer l'environnement est
eb create <name> -c <name> --elb-type classic
Version EB CLI information
eb --version
EB CLI 3.10.5 (Python 2.7.1)
http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options.html#configuration-options-precedence –
Ceci ne fournit pas de réponse à la question. Une fois que vous avez suffisamment [réputation] (https://stackoverflow.com/help/whats-reputation) vous pourrez [commenter n'importe quel article] (https://stackoverflow.com/help/privileges/comment); Au lieu de cela, [fournissez des réponses qui ne nécessitent pas de précisions de la part du demandeur] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- je-fais-à la place). - [De l'examen] (/ review/low-quality-posts/17147557) –