Ativando o HTTPS na instância do EC2 dentro do AWS Elastic Beanstalk

1

Estou implantando um Expressjs em um contêiner Docker via Elastic Beanstalk. Meu aplicativo verifica req.secure para cada solicitação para garantir que esteja usando HTTPS. Não permitirá acesso ao aplicativo se não for HTTPS. Eu segui todas as instruções nos documentos da AWS para configurar meu balanceador de carga para aceitar HTTPS e para que ele se comunique via HTTPS à minha instância do EC2.

link

link

Consegui que o HTTPS funcionasse no Load Balancer, mas parece que ele não está usando HTTPS para falar com meu contêiner do Docker. Alguém tem alguma ideia?

Meus ouvintes no balanceador de carga são:

option_settings:
  aws:elb:listener:443:
    InstancePort: 443
    InstanceProtocol: HTTPS
  aws:elasticbeanstalk:application:
    Application Healthcheck URL: HTTPS:443/

e

option_settings:
 aws:elb:listener:443:
  SSLCertificateId: arn:aws:iam::######:server-certificate/cert_name
  ListenerProtocol: HTTPS

Editar:

Não sei se isso ajudará, mas é assim que eu configuro minha instância do EC2:

Resources:
  sslSecurityGroupIngress:
    Type: AWS::EC2::SecurityGroupIngress
    Properties:
      GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]}
      IpProtocol: tcp
      ToPort: 443
      FromPort: 443
      CidrIp: 0.0.0.0/0
  AWSEBAutoScalingGroup:
    Metadata:
      AWS::CloudFormation::Authentication:
        S3Auth:
          type: "s3"
          buckets: ["elasticbeanstalk-us-east-1-#########"]
          roleName:
            "Fn::GetOptionSetting":
              Namespace: "aws:autoscaling:launchconfiguration"
              OptionName: "IamInstanceProfile"
              DefaultValue: "aws-elasticbeanstalk-ec2-role"

files:
  /etc/nginx/conf.d/https.conf:
    mode: "000644"
    owner: root
    group: root
    content: |
      # HTTPS Server

      server {
        listen 443;
        server_name localhost;

        ssl on;
        ssl_certificate /etc/pki/tls/certs/server.crt;
        ssl_certificate_key /etc/pki/tls/certs/server.key;

        ssl_session_timeout 5m;

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
        ssl_prefer_server_ciphers on;

        location / {
          proxy_pass http://docker;
          proxy_http_version 1.1;

          proxy_set_header Connection "";
          proxy_set_header Host $host;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
      }

  /etc/pki/tls/certs/server.crt:
    mode: "000400"
    owner: root
    group: root
    authentication: "S3Auth"
    source: https://s3.amazonaws.com/<url_to_private_key>

 /etc/pki/tls/certs/server.key:
    mode: "000400"
    owner: root
    group: root
    authentication: "S3Auth"
    source: https://s3.amazonaws.coom/<url_to_cert>
    
por GGross 03.06.2016 / 18:17

0 respostas