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