HTTP-Redirect auf HTTPS:PORT in Tomcat
Ich habe einen Laufenden tomcat-Anwendung, die bereits die folgende Umleitungsregel von HTTP zu HTTPs:
<Connector executor="tomcatThreadPool"
port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
Ist es möglich, fügen Sie eine Ausnahme/die Regel, dass eine bestimmte HTTPrequest (http://www.example.com), wird umgeleitet auf eine andere Adresse mit port angegeben (sagen https://www.example.com:8443/test), ohne ändern/entfernen der oben genannten Stecker ?
Es scheint, dass das Internet nicht einverstanden erklären, auf eine einzige, vollständige und funktionierende Lösung für dieses problem. Hoffentlich können Sie einige helfen hier in meinem Beitrag. Ich musste durch Reifen springen, um mit diesem schließlich.
InformationsquelleAutor ABR | 2015-10-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Konfiguration des connectors, die Sie gezeigt, keine Umleitung von einer bestimmten URL in der Weise, die Sie annehmen.
Dieser Konfiguration handelt, wenn Sie so konfiguriert haben, dass ein
CONFIDENTIAL
transport garantieren für eine web-Anwendung innerhalb dieser servlet-container.Ich meine, wenn Sie bereitgestellt haben, jede Anwendung auf, die Stecker, wo seine
web.xml
Deskriptor hat einesecurity-constraint
wie folgt:Dann, Tomcat umgeleitet wird jeder die passende
url-pattern
zu den konfigurierten port, um die Verwendung von HTTPS als Garant der Vertraulichkeit im Verkehr.Also, wenn Sie wollen, leiten Sie einen bestimmten URL, die Sie haben, zu ergänzen connector-Konfiguration mit spezifischen Anwendungs-Konfiguration.
Bearbeiten
Wie Sie vermuten in Ihrem Kommentar, es könnte ein weiterer Schritt, um diese Konfiguration zu arbeiten. Nach der Konfiguration von http-Anschluss, wie gezeigt, und anschließend konfiguriert die app, als ich Ihnen sagte, Sie nur sicherstellen, dass der Tomcat-server eine HTTPS-connector konfiguriert, andere Art der Umleitung nicht funktionieren.
Konfigurieren diese HTTPS-Anschluss verwenden, können Sie eine Konfiguration wie die folgende:
Dies ist eine Beispiel-Konfiguration, wo ich nicht setzen einige Attribute, die wichtig sein kann für Sie als threads attrs, Nachlassverwalter, und so weiter.
Das wichtigste ist die KeyStore-Konfiguration, die Sie brauchen, um zu dienen HTTPS-verbindungen. Hier haben Sie die offizielle Dokumentation zur Vorbereitung einer java-KeyStore für Tomcat zu dienen HTTPS.
Ich habe gerade mein edit beantworten.
InformationsquelleAutor malaguna
Als malaguna beantwortet, dass
Connector
Konfiguration ist nicht eine Weiterleitungs-Regel. Es ist nur eine Einstellung, die wird eingesetzt, wenn die Umleitung ausgelöst durch<transport-guarantee>CONFIDENTIAL</transport-guarantee>
.Gibt es keine Möglichkeit zu überschreiben, dass die Einstellung auf per-application-basis.
Wenn Sie eine bessere Kontrolle über diese Umleitung, die Sie benötigen, um Ihre eigenen Filter implementieren, die eine Weiterleitung (
if (!request.isSecure()) { response.sendRedirect(...);}
), oder konfigurieren Sie eine 3rd-party ein.//Technisch in aktuellen Tomcat-8-code der Umleitung ausgelöst durch
transport-guarantee
erfolgt durchorg.apache.catalina.realm.RealmBase.hasUserDataPermission(...)
Methode.InformationsquelleAutor Konstantin Kolinko
Können Sie dies tun, um jede app unter tomcat implementiert werden, indem diese am Ende der
tomcat_dir/conf/web.xml
:So dass Sie nicht haben, um es zu ändern auf die web.xml Ihre webapp.
Funktionieren sollte, wenn Sie bereits über https arbeiten in einen anderen port (in der Regel 443). Wenn Sie nicht, stellen Sie sicher, dass Ihre
tomcat_dir/conf/server.xml
sieht wie folgt aus:InformationsquelleAutor Mateus Viccari
Wenn Sie tomcat mit httpd, können Sie
RewriteEngine
.Mit port angegeben ist wie die folgende in die http.conf:
Finden Sie unter: RewriteHTTPToHTTPS und Umleitung auf die SSL-Anfrage
InformationsquelleAutor tkhm
InformationsquelleAutor Renat Gatin