This one took quite some effort to fix. Problem: Tomcat was being run behind Amazon ELB and listening to both port 8080 and 8443. I need to redirect all traffic to https even if initiated on http by the client. So my configuration was like this: <connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" URIEncoding="UTF-8" redirectPort="8443" /> <connector port="8443" protocol="HTTP/1.1