Question: I've my spring boot app running on tomcat EC2 instances behind the Loadbalancer, which has configured with Https and internelly using Http.

I want to redirect url requests to HTTP to HTTPS. 

I found this [document](https://aws.amazon.com/premiumsupport/knowledge-center/redirect-http-https-elb/) from AWS Support 

As it says I need to config the Apache backend with the following config

```
RewriteEngine On

RewriteCond %{HTTP:X-Forwarded-Proto} =http

RewriteRule . https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent]

```

My Question is where to add these config?

There is another document says i need to add .ebextensions directory to the webapp directory and place configurations there. If that is the case, then what is the directory structure and config file format ?

Answer: 
Create a folder `.ebextensions` in the root of your project (and make sure it is in the root of the bundle you're uploading to Elastic Beanstalk. Something like this:

```
~/workspace/my-app/
|-- .ebextensions
|   -- httpd
|      -- conf.d
|         -- myconf.conf
-- index.jsp

```

in `myconf.conf`

```
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteRule . https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent]

```

There is a whole article on customizing the Java apps running in Elastic Beanstalk Tomcat: <http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/java-tomcat-platform.html> Have a look for more info.
Found the solution create a config file in the following location

```
~/workspace/server/
|-- .ebextensions
|   -- httpd
|      -- conf.d
|         -- abc.conf

```

with the following content

```
<VirtualHost *:80>
   LoadModule rewrite_module modules/mod_rewrite.so

   RewriteEngine On
   RewriteCond %{HTTP:X-Forwarded-Proto} !https
   RewriteCond %{HTTP_USER_AGENT} !ELB-HealthChecker
   RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

   <Proxy *>
     Require all granted
   </Proxy>

   ProxyPass / http://localhost:8080/ retry=0
   ProxyPassReverse / http://localhost:8080/
   ProxyPreserveHost on

   ErrorLog /var/log/httpd/elasticbeanstalk-error_log

</VirtualHost>

```

Load mod\_rewrite is required in newer Tomcat installations.

Source: <https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/configuring-https-httpredirect.html>