ubuntuusers.de

Reverse Proxy Settings mit Apache funktionieren nicht

Status: Gelöst | Ubuntu-Version: Lubuntu 18.04 (Bionic Beaver)
Antworten |

mkolb

Anmeldungsdatum:
12. Oktober 2018

Beiträge: 6

Hallo!

Ich habe folgendes Problem: Ich habe mir auf einer Ubuntu 18.04 VM (gehostet in AWS) einen Rocket.Chat Server aufgesetzt. Als Webserver nutze ich Apache. Ich habe den Server mit einem self signed SSL Zertifikat konfiguriert und wenn ich https://public.DNS.name aufrufe, kommt auch die Apache default page.

Die Rocket.Chat Anwendung läuft über Port 3000 und ich wollte nun mittels Reverse Proxy Settings diesen Port über SSL leiten, um eine verschlüsselte Kommunikation zu haben, aber es klappt einfach nicht. Mein Apache config file sieht im Moment so aus:

        <VirtualHost *:443>
                ServerAdmin email@address.eu
                ServerName blablabla.compute.amazonaws.com
                ServerAlias blublubb
                ProxyPreserveHost on

                SSLProxyEngine On
                ProxyPass / http://localhost:3000/
                ProxyPassReverse / http://localhost:3000/

                RewriteEngine On
                RewriteCond %{HTTP:Upgrade} =websocket [NC]
                RewriteRule /(.*)       ws://localhost:3000/$1 [P,L]
                RewriteCond %{HTTO:Upgrade} !=websocket [NC]
                RewruteRule /(.*)       http://localhost:3000/$1 [P,L]

                SSLEngine on
                SSLCertificateFile      /path/to/file.crt
                SSLCertificateKeyFile   /path/to/file.key
        </VirtualHost>

Über http://public.DNS.name:3000 ist die Anwendung erreichbar und https://public.DNS.name liefert wie gesagt die Apache Default Page, aber die Anwendung auf Port 3000 über SSL will einfach nicht klappen.

Freue mich über jeden Input!

Vielen Dank! LG mkolb

misterunknown Team-Icon

Ehemalige
Avatar von misterunknown

Anmeldungsdatum:
28. Oktober 2009

Beiträge: 4403

Wohnort: Sachsen

mkolb schrieb:

Die Rocket.Chat Anwendung läuft über Port 3000 und ich wollte nun mittels Reverse Proxy Settings diesen Port über SSL leiten, um eine verschlüsselte Kommunikation zu haben, aber es klappt einfach nicht.

Was genau geht denn schief? Was sagt

curl -i http://public.DNS.name

?

                SSLProxyEngine On

Das brauchst du nicht, denn du redest mit Rocket.Chat ja nicht über HTTPS sondern über HTTP. Das SSL-Offloading passiert im Apache.

Über http://public.DNS.name:3000 ist die Anwendung erreichbar

Das solltest du ändern. Wenn schon Apache als Proxy davor ist, sollte er auch HTTP und HTTPS terminieren. Die Rocket.Chat-Anwendung muss einfach nur lokal lauschen, also an 127.0.0.1.

und https://public.DNS.name liefert wie gesagt die Apache Default Page

Das ist das Problem. Welche VHosts sind denn unter /etc/apache2/sites-enabled/ aktuell aktiviert? Wenn du den Default-Vhost nicht brauchst, dann kannst du den Link dort wegräumen, und dir einen eigenen VHost bauen. Zumal wäre interessant ob du den Request per curl im Access-Log siehst.

mkolb

(Themenstarter)

Anmeldungsdatum:
12. Oktober 2018

Beiträge: 6

Hi,

danke für die rasche Rückmeldung!

Was genau geht denn schief?

Naja, dass wenn ich eben https://public.DNS.name aufrufe nicht die Weiterleitung zu Port 3000 passiert. wenn ich den curl Befehl eingebe ist der Output der HTML code der Apache Default Page.

Das solltest du ändern

Würde ich gerne, aber ich habe das ganze über snap installiert und um die Port Einstellung zu ändern brauche ich rocketchat-caddy (https://rocket.chat/docs/installation/manual-installation/ubuntu/snaps/autossl/) was aber auch troubles macht weil sich, keine Ahnung warum, der Service einfach nicht starten lässt. Soweit ich es eingränzen konnte hängt das wohl damit zusammen, dass caddy ein letsencrypt zertifikat beziehen will, aber für meine VM keines bekommt weil ich den default public DNS Namen von AWS nutze und keine custom Domain, das ist gegen die letsencrypt policies (https://community.letsencrypt.org/t/policy-forbids-issuing-for-name-on-amazon-ec2-domain/12692/2)

Welche VHosts sind denn unter /etc/apache2/sites-enabled/ aktuell aktiviert?

In sites-enabled ist nur das default file. Meine eigenen Änderungen wie im letzten Post beschrieben, befinden sich alle in site-available. Wenn ich das File aber nach site-enabled kopiere, startet mir der Apache gar nicht mehr.

Into_the_Pit Team-Icon

Ehemalige
Avatar von Into_the_Pit

Anmeldungsdatum:
25. Juni 2008

Beiträge: 9490

Wohnort: Bochum

mkolb schrieb:

Wenn ich das File aber nach site-enabled kopiere, startet mir der Apache gar nicht mehr.

Apache ist, mit den richtigen Abfragen, recht gesprächig und hilfreich. Man braucht auch nicht irgendwelche Dateien nach sites-enabled kopieren, sondern man nutzt dafür

a2ensite foo

Das erstellt einen Symlink von sites-available nach sites-enabled. Mit einem

apache2ctl -t

kannst Du vor dem restart/reload des Apachen auch einen Configtest durchführen, der Dir - wie oben beschrieben - etwas mehr Output gibt.

mkolb

(Themenstarter)

Anmeldungsdatum:
12. Oktober 2018

Beiträge: 6

Danke! Ich habs!

Ich habe schon zuvor versucht das config file mittels "a2ensite" zu aktivieren, bekam aber immer den fehler, dass es das File schon gibt und deswegen nichts geändert wird. Jetzt habe ich versucht ein weiteres config file an zu legen mit dem gleichen Inhalt und dieses zu aktivieren. Diesmal ging es ohne Fehler und siehe da, ich erreiche Rocket.Chat unter https://public.DNS.name

Danke für die Hilfe!

Antworten |