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.
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>