Se sendRedirect usar um caminho relativo, o Tomcat adicionará elementos absolutos, incluindo esquema (http / https) e nome do servidor.
O esquema será padronizado para http, a menos que você o substitua. O nome do servidor virá do cabeçalho do host que você já passou com cuidado.
Eu tive o mesmo problema e usei um novo conector Tomcat (ao lado do existente) em uma porta separada que substitui o esquema e define a porta como uma boa medida:
<Connector port="8443" protocol="HTTP/1.1" URIEncoding="UTF-8"
connectionTimeout="20000"
scheme="https" proxyPort="443"/>
Em seguida, no Apache, o host virtual SSL possui:
ProxyPass / http://<tomcat_server>:8443/
O host virtual HTTP simples continua a usar a porta Connector existente (8080)
Como alternativa, você pode codificar o local de redirecionamento ao chamar sendRedirect (), mas isso é obviamente inflexível.