SSL Error bei Login in App (iOS 16)

Hallo in die Runde,
zuallererst möchte ich mich für die grandiose Arbeit bedanken.

Bei meiner Installation bin ich leider auf ein paar kleinere Problemchen gestoßen.

Wenn ich mich in der App auf einem iPhone (13 Pro) mit iOS 16.0.2 anmelden möchte, erhalte ich leider immer eine Fehlermeldung:

ERROR: Error
Domain=com.alamofire.error.serialization.response
Code=-1011 "Request failed: not found (404)"
Userlnfo=(NSLocalizedDescription=Requestfailed:
not found (404), NSUnderlyingError=0x283e1b9c0
{Error
Domain=com.alamofire.error.serialization.response
Code=-1016 "Request failed: unacceptable content-
type: text/html"
UserInfo={NSLocalizedDescription=Requestfailed:
unacceptable content-type: text/html,
NSErrorFailingURLKey=https://{zensiert}:443/health/status,
com.alamofire.serialization.response.error.data=flen
gth = 152, bytes = 0x3c21444f 43545950
45206874 6d6c3e0a ... 3c2f6874 6d6c3e0a },
com.alamofire.serialization.response.error.response
=<NSHTTPURLResponse: Ox283157640> { URL
https://{zensiert}:443/health/status}
{ Status Code: 404, Headers {
"Content-Encoding"
=
gzip
);
"Content-Type"=
"text/html; charset=utf-8"
);
Date =
(
"Thu, 06 Oct 2022 07:42:18 GMT"
);
Server =
(
openresty
);
"content-security-policy"=
"default-src 'none'"
);
"x-content-tvpe-options"=
nosniff
);
"x-powered-by"=
Express
);

Die API ist extern hinter dem Proxy mit SSL erreichbar:

{"success":1,"description":"Health check successful","apiVersion":"2.0.0"}

Der ALARMiator Web-Dienst wird ohne Angabe des Ports ohne Probleme via HTTPS aufgelöst.

Alle Ports auf dem VM sind erreichbar.

Installiert wurde der Server auf einer VM (HyperV) im RZ (Hetzner) ( → 4 Kerne 6gb RAM).

Ich würde mich über jede Hilfe freuen.

VG. Flo

Hallo Flo,

hast du dich an die Anleitung bezüglich des NGINX gehalten? Normalerweilse sollte der API Pfad dann etwa folgender sein:

https://{{domain}}:{port}}/api

Wenn ich mir die Fehlermeldung so anschaue, fehlt das /api bei dir in der App :slight_smile:

Servus Stefan, danke schon mal für die Antwort,

  • der Proxy Manager ist wie beschrieben installiert und eingerichtet – der Proxyserver verweist lediglich auf die IP anstelle auf den Hostnamen des Servers, da er unter Verwendung des Hostnamen nicht starten kann.

für "/api/ wird auf „xxx.xxx.xxx.xxx/“ und Port 5010 (/socket.io/ liegt auf „5020“ und /spaceport/socket.io/ auf „5555“) verwiesen, so wie vorgegeben. - Die verwendete IP ist die dem V-Host vom DHCP zugewiesene, externe IP.
Die Ports sind allesamt erreichbar und werden vom Monitoring alle 3 Minuten erfolgreich angesprochen.

Auch bei Angebe des Ports (https://sub.domain.de:443/api/ und/oder https://sub.domain.de:5443/api/) wird die oben genannte Fehlermeldung ausgegeben.

Wie im Forum beschrieben, habe ich den Proxyserver im ALARMiator hinterlegt. SSL ist für das Plugin ebenfalls aktiviert.

  • Danke schonmal,
    Flo

Hallo Flo,

alles klar, dann passts schonmal.

Wenn ich mir deine Fehlermeldung nämlich anschaue, kommt ein

404 - NOT FOUND

zurück und in deiner aufrufenden URL fehlt auch das /api. Das bedeutet für mich erstmal das die API nicht dort erreichbar ist, wo du sie mit der App suchst.

Wenn du möchtest kannst mir mal per DM die URL schicken von welcher du den gültigen Health Check bekommen hast, dann kann man genaueres sagen.

Es ist auf dem ersten Blick aufjedenfall unabhängig von der App, sondern eher eine Konfigurationsgeschichte.

Schöne Grüße
Stefan

1 „Gefällt mir“

Nachtrag: "das Weglassen des letzten „/“ - also verwenden von „https://sub.domain.de:443/api“ bringt mich schon mal einen Schritt weiter.

Nun zeigt er folgenden Fehler:

Es ist ein Fehler beim Login aufgetreten.
Wende Dich an Deinen Administrator.
Technische Fehlermeldung:
ERROR: Error Domain=NSURLErrorDomain
Code=-1001 "The request timed out."
Userlnfo={_kCFStreamErrorCodeKey=-2102,
NSUnderlyingError=0x28172c270{Error
Domain=kCFErrorDomainCFNetwork Code=-1001
"(null)" Userlnfo={_kCFStreamErrorCodeKey=-2102,
_KCFStreamErrorDomainKey=4}},
_NSURLErrorFailingURLSessionTaskErrorKey=Local
DataTask<9F68E5C4.
E57E-434E-8E80-332D018BF56F>.<4>,
NSURLErrorRelatedURLSessionTaskErrorKey=(
"LocalDataTask<9F68E5C4-
E57E-434E-8E80-332D018BF56F>.<4>"
), NSLocalizedDescription=The request timed out.,
NSErrorFailingURLStringKey=https://sub.domain.de:443/api/health/status,
NSErrorFailingURLKey=https://sub.domain.de:443/api/health/status,
_kCFStreamErrorDomainKey=4}

Leider sagt euer System „nop du sendest keine DM an einen anderen - ggf hab ich dazu einfach keine rechte xD“

Okay das ist schonmal ein Fortschritt :grinning:

Hast du beim REST-API Plugin den Haken und die Proxy Adresse auch gesetzt?

Die App versucht sich beim Verbinden diese Info zu ziehen um ggf die Adresse zu aktualisieren falls sie unterschiedlich sind. Er probiert dann den /status/health Endpunkt anzufragen.

Wenn dieser nun hinter einer Firewall liegt und falsch ist, lässt die Firewall den Request austimen.

Warte kurz ich schreib dir :smiley:

1 „Gefällt mir“

→ Nachtrag // Lösung des Problems für alle, die auf denselben Fehler stoßen:

→ User war nicht aktiv (Achtung: orange = aktiv)
→ Proxyserver wird ohne Nennung v. Port angesprochen (https://sub.domain.de/api) ← Achtung, am Ende kein „/“

  • Der Fehler besagt lediglich, dass mit dem angegebenen User keine Daten abgefragt werden konnten.
2 „Gefällt mir“