[GELÖST] Apache Reverse Proxy mit mod_auth_openidc führt zu 404 in lighttpd

Einrichtung, Nutzung und Hilfe zu RaspberryMatic (OCCU auf Raspberry Pi)

Moderatoren: jmaus, Co-Administratoren

Antworten
methodus
Beiträge: 67
Registriert: 05.07.2011, 20:17

[GELÖST] Apache Reverse Proxy mit mod_auth_openidc führt zu 404 in lighttpd

Beitrag von methodus » 06.12.2018, 21:57

Hi,

ich habe ein etwas wilderes Thema: ich habe einen Apache Reverse Proxy auf einem zweiten Raspi mit mod_auth_openidc aufgesetzt, um mich mit meinem Google Account einloggen zu können. Das klappt soweit mit meinen anderen Diensten, aber nicht mit dem Raspmatic. Es kommt beim Abruf der index.htm?sid=@gedöns@ zu einem 404 - Not Found. Ich hatte erst openidc in Verdacht, da die 404 nicht von der Homematic zu kommen schien, aber dann sah ich dass dort Lighttpd 1.4.50 als Server angegeben war und das zum Update vom raspmatic passte.

Ich habe dann in den Logs geschaut und bin tatsächlich fündig geworden:

Code: Alles auswählen

2018-12-06 21:41:44: (http-header-glue.c.1273) read(): Connection reset by peer 34 35
2018-12-06 21:41:44: (gw_backend.c.2152) response already sent out, but backend returned error on socket: tcp:127.0.0.1:8183 for /inde
x.htm?sid=@rnlHfBMd0t@, terminating connection
Das kommt bei jedem Request, dass durch den Reverseproxy geht. Rufe ich die index.htm intern auf, kommt kein Fehler.

Wie kann ich das Logging etwas gesprächiger stellen, um das Problem eingrenzen zu können?
Zuletzt geändert von methodus am 07.12.2018, 11:31, insgesamt 1-mal geändert.

methodus
Beiträge: 67
Registriert: 05.07.2011, 20:17

Re: Apache Reverse Proxy mit mod_auth_openidc führt zu 404 in lighttpd

Beitrag von methodus » 07.12.2018, 11:30

Ich habe selber die Lösung gefunden: Ursächlich sind die Header, die vom apache_mod_openidc an lighttpd geschickt werden.

Da Raspmatic mit den Headern ohnehin noch nichts anfangen kann (OAuth2.0 wäre nur zu verlockend), braucht man die Header mit den Claims nicht und deaktiviert sie in der VirtualHost-Config für den Reverse Proxy einfach so:

Code: Alles auswählen

	...
        OIDCRedirectURI https://smarthome.example.com/redirect
	OIDCPassClaimsAs none

        <Location />
	        AuthType openid-connect
                Require claim email:me@example.com

                ProxyPass http://homematic/
                ProxyPassReverse http://homematic/
        </Location>
	...
Ich setze lieber auf OpenIDC als auf BasicAuth/DigestAuth zur Absicherung der Homatic, um mit vergleichbar geringen Aufwänden 2-Faktor-Auth und keine Klartextpasswörter verwenden zu können.

Benutzeravatar
jmaus
Beiträge: 9839
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 462 Mal
Danksagung erhalten: 1863 Mal
Kontaktdaten:

Re: [GELÖST] Apache Reverse Proxy mit mod_auth_openidc führt zu 404 in lighttpd

Beitrag von jmaus » 07.12.2018, 11:41

Die entscheidende Frage hierbei wäre doch lieber warum/wieso diese Header den lighttpd so stark stören und ob man diese nicht besser auf Seiten des lighttpd dann in irgendeiner weise ignorieren oder entfernen lassen kann. Das wäre IMHO die "richtigere" Herangehensweise.
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

methodus
Beiträge: 67
Registriert: 05.07.2011, 20:17

Re: [GELÖST] Apache Reverse Proxy mit mod_auth_openidc führt zu 404 in lighttpd

Beitrag von methodus » 12.02.2019, 09:42

Ich glaube ursächlich für den Fehler beim lighttpd ist die Menge der Header und deren Größe. Ich habe festgestellt, dass das WebUI nach Session-Ablauf weiterhin versucht sein Event-Polling loszuwerden. Dadurch versucht openidc eine neue OpenID-Session zu erzeugen, was per-se auch klappt, aber durch die fehlende Session im WebUI kommt trotzdem kein gültiger Request zustande. openidc sendet dann ziemlich viele Session-Header (> 7 Stück!) und lighttpd explodiert.

Das ist jedenfalls noch ein Fehler.

Die anderen Probleme schau ich mir nochmal an und versuche einen Fix zu liefern.

Antworten

Zurück zu „RaspberryMatic“