Frage

ich habe ein kleines Problem mit SSL auf einem Tomcat, die hinter Apache ist. Ich habe Google die ganzen Morgen verwendet, um zu versuchen, eine gute Lösung zu finden, aber bisher nichts.

Als Teil meiner SSL Virtualhost Konfiguration Ich habe

<Location /MyApp/>
  ProxyPass http://localhost:8080/MyApp/
</Location>

Dies funktioniert gut für die meisten Fälle, aber j_security_check, nach einer erfolgreichen Anmeldung von https://mysite.com/MyApp , leitet zu einer HTTP-Seite http://mysite.com/MyApp/secret.html anstatt es als HTTPS-Seite verlassen https://mysite.com/MyApp/secret.html . Es ist nicht nur die Anmeldung, die vertraulich ist, aber die Daten, die übertragen werden, also muss ich es HTTPS halten. Wenn ich an die Anwendung der sicherheits contraints hinzufügen

<user-data-constraint>
  <transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>

es Umleitungen an https://mysite.com:8443/MyApp/secret.html . Ich weiß, dass es um 8443 umleitet, weil server.xml zu 8443 SSL konfiguriert hat, aber da dies durch Apache Proxy ist, ist es in der Tat sollte 443 sein.

Ich weiß, ich habe keine Proxypassreverse, aber das ist nicht etwas, das ich in einem Abschnitt der Apache-Konfigurationsdatei hinzufügen

Wie kann ich zwingen j_security_check entweder relativ Redirect (also nicht https http ändern) oder auf 443 statt 8443 zu umleiten? Ist das etwas, was ich über Tomcat oder Apache mod_proxy erzwingen sollte?

Prost

Nik

War es hilfreich?

Lösung

Sie können nicht wirklich auf Tomcat zählen die Umleitung zu tun für Ihren Setup SSL. Sie benötigen einen Filter zu schreiben, um die selbst umleiten zu tun.

Für Ihren speziellen, es könnte funktionieren, wenn Sie redirectPort wie folgt hinzu,

<Connector ... port="8080" redirectPort="443"/>

Bitte entfernen Sie den HTTPS-Anschluss. Es könnte einige Version von Tomcat verwirren, wenn Sie beide redirectPort und HTTPS-Anschluss haben. Klingt wie Sie Menschen greifen nicht sowieso Ihre HTTPS-Port wollen.

Dies funktioniert nur, wenn Sie Apache und Tomcat auf der gleichen Maschine. In einer Produktionsumgebung, das nicht der Fall sein kann.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top