Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Redirecting EC2 Elastic Load Balancer from HTTP to HTTPS

I want to redirect all the HTTP request to https request on ELB. I have two EC2 instances. I am using nginx for the server. I have tried a rewriting the nginx conf files without any success. I would love some advice on it.

like image 324
Amit Badheka Avatar asked Jul 07 '14 05:07

Amit Badheka


People also ask

How do I redirect AWS load balancer to HTTPS?

Select a load balancer, and then choose HTTP Listener. Under Rules, choose View/edit rules. Choose Edit Rule to modify the existing default rule to redirect all HTTP requests to HTTPS. Or, insert a rule between the existing rules (if appropriate for your use case).

Can classic load balancer redirect HTTP to HTTPS?

Classic Load Balancers can't redirect HTTP traffic to HTTPS by default. Instead, configure your rewrite rules for the web servers instances behind the Classic Load Balancer. You must configure your rewrite rules to use the X-Forwarded-Proto header and redirect only HTTP clients.


1 Answers

AWS Application Load Balancers now support native HTTP to HTTPS redirect.

To enable this in the console, do the the following:

  1. Go to your Load Balancer in EC2 and tab "Listeners"
  2. Select "View/edit rules" on your HTTP listener
  3. Delete all rules except for the default one (bottom)
  4. Edit default rule: choose "Redirect to" as an action, leave everything as default and enter "443" as a port.

Native redirect listener rule

The same can be achieved by using the CLI as described here.

It is also possible to do this in Cloudformation, where you need to set up a Listener object like this:

  HttpListener:     Type: AWS::ElasticLoadBalancingV2::Listener     Properties:       LoadBalancerArn: !Ref LoadBalancer       Port: 80       Protocol: HTTP       DefaultActions:       - Type: redirect          RedirectConfig:           Protocol: HTTPS           StatusCode: HTTP_301           Port: 443 

If you still use Classic Load Balancers, go with one of the NGINX configs described by the others.

like image 186
Ulli Avatar answered Nov 15 '22 22:11

Ulli