By using AWS re:Post, you agree to the Terms of Use

CORS/HTTPS issues with Elastic Beanstalk and load balancer

0

We have a springboot backend api running on elastic beanstalk. Our domain is on route53 and uses the Certificate Manager to run as https.

To make an api request we send the request to a subdomain url (https://api.SomeWebsite.com ). In Route53 we direct that subdomain to an EC2 load balancer, which then points that at the beanstalk instance. Our beanstalk should be in http - we are using the LB as an SSL terminator.

We have listeners for incoming traffic on the LB as:

HTTP , Port 80 -> Redirect to HTTPS

HTTPS, Port 443 -> Redirect to Target, HTTP, OurBeanstalkENV.

I have triple checked that the https port points to the correct EB instance, and it does note http on the target selection. +

The Issue: we keep getting either preflight failed due to no Access-Control-Allow-Origin (it's in the request header) or a timeout error error when make the requests. When we look at beanstalk logs, our springboot server has an error: java.lang.IllegalArgumentException: Invalid character found in method name... HTTP method names must be tokens...

Based on this error Springboot is receiving httpS requests, even though it should be receiving http via the load balancer. Does anyone know what could be wrong here?

1 Answer
0

Make sure you are also configuring the redirection rule for the HTTP listener, see this guide for a step-by-step: https://aws.amazon.com/premiumsupport/knowledge-center/elb-redirect-http-to-https-using-alb/

answered 6 months ago
  • If I have single instance environment, then how to do redirection from http to https without using load balancer, and certificate will be from Let's encrypt.

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions