У меня небольшая проблема с использованием SSL на Tomcat, который стоит за Apache. Я использовал Google все утро, чтобы попытаться найти хорошее решение, но пока ничего.
Как часть моей конфигурации SSL VirtualHost у меня есть
<Location /MyApp/>
ProxyPass http://localhost:8080/MyApp/
</Location>
Это работает нормально в большинстве случаев, но j_security_check после успешного входа с https://mysite.com/MyApp, перенаправляет на страницу HTTP http://mysite.com/MyApp/secret.html вместо того, чтобы оставить ее как страницу HTTPS https://mysite.com/MyApp/secret.html. Это не только логин, который является конфиденциальным, но и данные, которые передаются, поэтому мне нужно сохранить его HTTPS. Когда я добавляю в приложение защитные ограничения
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
он перенаправляет на https://mysite.com:8443/MyApp/secret.html. Я понимаю, что он перенаправляет на 8443, потому что для server.xml SSL настроен на 8443, но, так как он проксируется через Apache, на самом деле он должен быть 443.
Я понимаю, что у меня нет ProxyPassReverse, но это не то, что я могу добавить в раздел файла конфигурации Apache
Как я могу заставить j_security_check либо перенаправить родственника (чтобы не менять https на http), либо перенаправить на 443 вместо 8443? Это то, что я должен применять через Tomcat или Apache mod_proxy?
Приветствия
Nik