I would like to redirect all traffic from the following domains:
http://domain.com
http://www.domain.com
https://domain.com
to
https://www.domain.com
I have a SSL certificate for the above domain. It hosts a Rails app, served by Passenger.
To accomplish the naked domain redirect, I've set up an URL redirect in my DNSimple account:
URL domain.com 3600 https://www.domain.com
My server blocks are as follows (Inspired by Nginx no-www to www and www to no-www amongst others):
server { listen 80; listen 443; server_name domain.com; ssl on; ssl_certificate /etc/ssl/domain-ssl.crt; ssl_certificate_key /etc/ssl/domain.key; ssl_session_timeout 5m; ssl_protocols SSLv2 SSLv3 TLSv1; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; server_tokens off; access_log /dev/null; error_log /dev/null; return 301 https://www.domain.com$request_uri;}server { listen 443 ssl; server_name www.domain.com; root /home/deploy/app/current/public; passenger_enabled on; passenger_app_env production; passenger_set_cgi_param HTTP_X_FORWARDED_PROTO https; ssl on; ssl_certificate /etc/ssl/domain-ssl.crt; ssl_certificate_key /etc/ssl/domain.key; ssl_session_timeout 5m; ssl_protocols SSLv2 SSLv3 TLSv1; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on;}passenger_pre_start https://www.domain.com;
What works:
- naked domain gets redirected to secure
https://www
http://www
domain gets redirected to securehttps://www
https://
www works
What does't:
- Naked
https://
doesn't work, browsers throws a server not found
Basically I want to redirect all traffic to the secure https://www.domain.com
. What am I missing here?