I solved this myself, but I spent so long discovering such a simple solution, I figured it deserved to be documented here.
I have a typical Spring 3 MVC setup with
I add scheme="https" in file server.xml for connector with port="80":
scheme="https"
port="80"
<Connector port="80" protocol="HTTP/1.1" URIEncoding="UTF-8" connectionTimeout="20000" redirectPort="443" scheme="https" />