Weiterleitung zu https:// vermeiden

Pfiffikus

Member
Hallo Leute,


in den letzten Tagen suche ich mir hier einen Wolf nach der Ursache für eine fehlerhafte Weiterleitung. Möglicherweise könnt Ihr helfen?
Ausgeführt wird auf einer Synologie in der WebStation (Apache 2.4 und PHP 8.0) dieser PHP-Code, der in einen Grafana-Docker-Container weiterleiten soll:
static function RufeGrafanaBlutOma() {
$dieSeite = 'http://192.168.100.3:3000/d/ejifnbBVk/blutdruck-oma?orgId=1&refresh=2h';
header('Location: '.$dieSeite, true, 302);
header('Content-Type: text/html; charset=utf-8');
header('Content-Length: 0');
header('Connection: close');
echo "<html><head><script>window.open($dieSeite, '_blank');</script></head><body></body></html>";
}
Oma gibt den aktuellen Blutdruck-Messwert ein, der in die Datenbank wandert. Anschließend klickt sie auf den Link, der das gezeigte obige Skript ausführt. Hier würde ich beim Aufruf dieses Skripts erwarten, dass die angesprochene Seite (Grafana-Darstellung) angezeigt wird. Wird sie aber nicht.

In der Adresszeile des Browsers landet die URL https://192.168.100.3:3000/..blabla... und wir sehen die entsprechende Meldung, dass die Seite nicht angezeigt werden kann. (Kein Wunder, der Docker-Container mit Grafana kann kein https.)

Entfernt man das störende s aus der URL, wird der Verlauf des Blutdrucks ganz normal angezeigt.

/var/log/apache2 gibt es auf der Synologie nicht.
/var/log/httpd/ ist leer. ;-(

Den Container mit Grafana halte ich für unschuldig an dem unerwünschten Wechsel des Übertragungsprotokolls.

Hat jemand eine Idee, was ich an dieser Stelle falsch geskriptet habe? In welchen Logdateien könnte man noch nach Fehlern suchen? Wie müsste ich es richtig machen? Da die Sache ausschließlich intern läuft und von außen nicht erreichbar ist, soll auf https:// verzichtet werden.



Pfiffikus,
der einer fast 90j-ährigen Frau ungern noch die Sache mit dem Unterschied zwischen http:// und https:// erklären möchte
 
Ist da HSTS im Apache aktiviert? dann leitet der immer auf https:// um.
Oder es ist ein Redirect auf https:// in deiner Apache2-Konfig drin.
Oder der Browser hat ein "Sicherheitsfeature", dass auf SSL weiter leitet.
 
Funktioniert es per cURL?
Browser? Version? Extensions?

Betroffen sind alle Browser, die ich auf verschiedenen Windows- und Linuxrechnern ausprobiert habe. Extensions sollten da kaum eine Rolle spielen, meine ich.


Die Idee mit curl hatte ich bisher noch nicht. Danke für die Inspiration!
curl http://192.168.100.3:3000/d/ejifnbBVk/blutdruck-oma?orgId=1&refresh=2h
liefert: <a href="/login">Found</a>

curl -v http://192.168.100.3:3000/d/ejifnbBVk/blutdruck-oma?orgId=1&refresh=2h
liefert:
* Trying 192.168.100.3...
* TCP_NODELAY set
* Connected to 192.168.100.3 (192.168.100.3) port 3000 (#0)
> GET /d/7-YDvTf4z/blutdruck-oma?orgId=1 HTTP/1.1
> Host: 192.168.100.3:3000
> User-Agent: curl/7.58.0
> Accept: */*
>
< HTTP/1.1 302 Found
< Cache-Control: no-store
< Content-Type: text/html; charset=utf-8
< Location: /login
< Set-Cookie: redirect_to=%2Fd%2F7-YDvTf4z%2Fblutdruck-oma%3ForgId%3D1; Path=/; HttpOnly; SameSite=Lax
< X-Content-Type-Options: nosniff
< X-Frame-Options: deny
< X-Xss-Protection: 1; mode=block
< Date: Wed, 12 Jul 2023 11:57:35 GMT
< Content-Length: 29
<
<a href="/login">Found</a>.

* Connection #0 to host 192.168.100.3 left intact

Diese Tests haben demnach ergeben, dass man mittels curl tatsächlich bis zum Grafana-Container durchkommt, ohne dass https:// bemüht wird. Das Programm cURL wird von Grafana gebeten, sich einzuloggen....

Wenn die Adresse direkt in die Browser eingegeben wird, klappt die Verbindung zu Grafana wunderbar. Favoriten/Lesezeichen funktionieren in den Browsern tadellos.



Pfiffikus,
der nicht versteht, weshalb die Browser nicht bis zu Grafana durch kommen, wenn sie aus meinem PHP-Skript zu einer identischen Adresse geschickt werden
 
Ist da HSTS im Apache aktiviert? dann leitet der immer auf https:// um.
Oder es ist ein Redirect auf https:// in deiner Apache2-Konfig drin.
Oder der Browser hat ein "Sicherheitsfeature", dass auf SSL weiter leitet.
In den Einstellungen -> Anmeldeportal -> DSM habe ich den Haken für die Weiterleitung von http auf https extra entfernt. Ohne Erfolg.

Die Einstellungen in Apache habe ich so, wie sie von der Synologie vorgeschlagen worden sind, unverändert gelassen.


Pfiffikus,
der vorerst nicht nach einem "Sicherheitsfeature" in Omas Browser suchen will, weil die anderen Browser auch davon betroffen sind
 
Die Standardeinstellungen der Web Station auf der Synologie habe ich nicht angefasst.
Solange ich hier mit der Fehlersuche beschäftigt bin, habe ich das Häkchen bei HTTP2 raus genommen.

Der HTTPS-Only Mode ist zwar sehr geboten, vor allem in freier Wildbahn. Praktisch wirkt dieser Modus nur dann, wenn für die aufgerufene Seite auch eine HTTPS-Version existiert. Andernfalls geht HTTP nach wie vor durch. Auch wenn ich hier ein paar PHP-Skripts schreibe und auf der Synologie als Webserver teste, wird HTTP akzeptiert.

Im vorliegenden Fall akzeptieren die Browser ja zuweilen das HTTP-Grafana, allerdings nur wenn sie per Adresszeile oder Lesezeichen dort hin geschickt werden. Soll es am HTTPS-Only Mode liegen, dass sich die Browser nicht von meinem PHP-Skript zu Grafana schicken lassen?


Pfiffikus,
der Oma eben beibringen muss, auf das Grafana-Lesezeichen zu klicken
 
Es handelt sich um eine DS220+ ;
Installiertes System: DSM 7.1.1-42962 Update 4


Pfiffikus,
der noch keine Zeit fand, das kürzlich ausgegebene große Update einzuspielen
 
Sind die Unterschiede zwischen den Versionen 7.1 und 7.2 so gravierend? Ich bekomme schon einen Schreck, dass ich mir für das Update sehr viel Zeit einplanen muss, bis alles wieder funktioniert?

Ja ich befürchte, im Grafana-Container kann ich einstellen, was ich will, das wird kaum einen Effekt haben. Denn die Browser sind schließlich vorsichtig und sprechen Grafana überhaupt nicht an. Sie zeigen ja nur den Warnhinweis, dass es sich um eine gefährliche Seite handeln könnte, die kein https:// versteht und die man allenfalls auf eigenes Risiko besuchen könnte...
Würden die Browser die von Dir vorgeschlagene Einstellung, sofern sie nicht schon voreingestellt ist, überhaupt mitbekommen könnten?


Pfiffikus,
der inzwischen ein Lesezeichen für Grafana in Omas Browser angelegt hat
 
Ich werde das nachher mal testen mit Webstation auf DSM 7.2.
Sieht so aus als ob der Webdienst, der auf Port 80/443 horcht, automatisch auf 443 weiter geleitet wird.
Warum stellst du den Webdienst deines Containers nicht so ein, dass er nur auf Port 80 horcht?

https://kb.synology.com/de-de/DSM/h...accessories:~:text=Benutzerdefiniertes Portal

Wenn es bei dir nicht klappt, solltest du im Synology-Forum nachfragen.
Ich bin hier nun aus.
 
Last edited:
Warum stellst du den Webdienst deines Containers nicht so ein, dass er nur auf Port 80 horcht?
Herzlichen Dank für Deine Mühe.

Für den Webdienst habe ich eben keinen Docker-Container angelegt, sondern das Angebot der Synologie-"Web Station" genutzt. Bequemlichkeit eben. Die fällt mir nun auf die Füße.


Pfiffikus,
der sich nun auf die Lesezeichen-Lösung beschränken wird
 
Back
Top