Ich habe Apache Tomcat mit aktiviertem SSL ausgeführt. Ich habe Apache HTTP Server als Reverse-Proxy. Wenn Benutzer auf http: // myserver / tomcat / klicken, werden sie an http: // myserver: 8080 übergeben .
ProxyPass /tomcat/ http://myserver:8080/
ProxyPassReverse /tomcat/ http://myserver:8080/
Ich habe den Apache HTTP-Server auch für SSL konfiguriert. Wenn Benutzer auf https: // myserver / tomcat / klicken , sollten sie an https: // myserver: 8443 / übergeben werden .
Mit der aktuellen ProxyPass- und ProxyPassReverse-Konfiguration werden sie an die Nicht-SSL-URL umgeleitet. Wie kann ich den Proxy-Pass so einrichten, dass er basierend auf der eingehenden Anforderung zu einem anderen Protokoll und Port umleitet?
Das heißt, wenn jemand über HTTPS hereinkommt, wie kann ich ihn dann zu meinem Tomcat @ https: // myserver: 8443 umleiten ?
Aktualisieren:
@ Mike-Insch
Ich habe es versucht:
NameVirtualHost *:443
<VirtualHost *:80>
ProxyPass /tomcat/ http://myserver:8080/
ProxyPassReverse /tomcat/ http://myserver:8080/
</VirtualHost>
<VirtualHost *:443>
ProxyPass /tomcat/ https://myserver:8443/
ProxyPassReverse /tomcat/ https://myserver:8443/
</VirtualHost>
Wenn ich jetzt: https: // myserver / tomcat / besuche, erhalte ich "Seite nicht gefunden". Im Fehlerprotokoll wird "Datei existiert nicht: / var / apache2 / htdocs / tomcat" angezeigt.
Was richtig ist, aber ich habe erwartet, dass die Anfrage an Tomcat weitergeleitet wird, das unter https: // myserver: 8443 / ausgeführt wird .
Ich schätze, ich muss mir die virtuellen Hosts genauer ansehen, es sei denn, etwas sieht auffällig falsch aus.
quelle
NameVirtualHost
Richtlinie hier brauchen . Außerdem müssen Sie die entsprechenden Anweisungen hinzufügen, um SSL in Ihrem<VirtualHost *:443>
Abschnitt zu aktivieren .Antworten:
Sie müssen dies über zwei unabhängige
<VirtualHost *:X>
Anweisungen tun . IhreHTTP
Anweisungen gehen hinein,<VirtualHost *:80>
während IhreHTTPS
Anweisungen hineingehen<VirtualHost *:443>
. Passen Sie diese nach Bedarf an, wenn auf Ihrem Server mehrere adressbasierte oder namenbasierte virtuelle Hosts konfiguriert sind. Ausführliche Informationen finden Sie in der Apache 2-Dokumentation.quelle
Der Vollständigkeit halber: Wenn dies eine Option ist, ist es eine gute Idee, SSL bei Apache zu beenden, anstatt Tomcat auch damit zu beauftragen. Die Bereitstellung von Tomcat nur über Apache ist einfacher und nicht weniger sicher.
In diesem Setup würde Apache HTTP und HTTPS an Folgendes weitergeben
http://myserver:8080/
:quelle