I am attempting to redirect all non-www requests to www with my nginx server, but despite successfully redirecting the http request (http://example.com to https://www.example.com), the https request gets hung up. I have read where the browser tries to read the ssl certificate before the redirect and due to this, the hang up can occur, but I recently created a new ssl certificate to include example.com
, so I don't believe that should be an issue. Here are the details of my setup:
Route53, Elastic Beanstalk, Load Balancer, S3
- My Elastic Beanstalk instance is using a Classic Load Balancer with the SSL certificate attached.
- SSL Certificate for www.example.com (primary), example.com, .example.com
- S3 set to redirect non-www requests to www
- DNS configured for example.com to point to the s3-bucket redirect
- Nginx config to force https
files: "/tmp/45_nginx_https_rw.sh": owner: root group: root mode: "000644" content: | #! /bin/bash CONFIGURED=`grep -c "return 301 https" /etc/nginx/conf.d/00_elastic_beanstalk_proxy.conf` if [ $CONFIGURED = 0 ] then sed -i '/listen 8080;/a \ if ($http_x_forwarded_proto = "http") { return 301 https://$host$request_uri; }\n'
/etc/nginx/conf.d/00_elastic_beanstalk_proxy.conf logger -t nginx_rw "https rewrite rules added" exit 0 else logger -t nginx_rw "https rewrite rules already set" exit 0 fi
container_commands: 00_appdeploy_rewrite_hook: command: cp -v /tmp/45_nginx_https_rw.sh /opt/elasticbeanstalk/hooks/appdeploy/enact 01_configdeploy_rewrite_hook: command: cp -v /tmp/45_nginx_https_rw.sh /opt/elasticbeanstalk/hooks/configdeploy/enact 02_rewrite_hook_perms: command: chmod 755 /opt/elasticbeanstalk/hooks/appdeploy/enact/45_nginx_https_rw.sh
/opt/elasticbeanstalk/hooks/configdeploy/enact/45_nginx_https_rw.sh 03_rewrite_hook_ownership: command: chown root:users /opt/elasticbeanstalk/hooks/appdeploy/enact/45_nginx_https_rw.sh /opt/elasticbeanstalk/hooks/configdeploy/enact/45_nginx_https_rw.sh