Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    App kommt nicht durch HAProxy

    Deutsch
    4
    86
    51.3k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • A
      Alcamar
      last edited by Alcamar

      Hallo,

      Ich betreibe HAProxy auf der PfSense und dort einen Hausautomations-Server in der DMZ. Der Server läßt sich per Browser mit home.mydomain.de problemlos erreichen. Alle Anfragen werden über Port 443 umgeleitet und bedient. Zertifikate klappen auch sehr gut.
      Rufe ich die gleiche URL per App auf meinem iphone auf, kommt dort die Meldung, dass es einen Fehler beim Verbinden gab. Ich kann in der App nur die Anmeldeinformationen ändern.
      Diese sind vor dem Wechseln auf HAProxy ok gewesen, und die App funktionierte problemlos. Da lief der Reverse-Proxy auf einer Synology.

      • Wie kann ich die Fehlerursache eingrenzen?
      • Welche Logs kann ich prüfen?

      Das gleiche Problem habe ich mit einer anderen App, die auf Kameras zugreift. Der Weg über einen Browser zur Kamera klappt perfekt. Der Weg über die App leider nicht.

      JeGrJ 1 Reply Last reply Reply Quote 0
      • jimpJ jimp moved this topic from HA/CARP/VIPs on
      • JeGrJ
        JeGr LAYER 8 Moderator @Alcamar
        last edited by

        @alcamar Dazu müsste man erstmal wissen, was die App bzw. das Telefon bei der Domain als IP zurückbekommt und ob das Gerät den richtigen Weg geht. Ansonsten wird von Port 443 gesprochen, also könnte es auch Probleme mit den Zertifikaten geben, daher kann man das ohne genauere Fehlerlogs oder Aussagen nicht wirklich genau greifen, was da das Problem sein soll.

        Ich bespaße bspw. meinen HomeAssistant der Einfachheit halber weil ACME+Zertifikat an zentraler Stelle via HAproxy und sowohl Telefone, Tablets als auch Rechner können da problemlos drauf zugreifen. Daher kann das alles mögliche sein: von HAproxy SSL Einstellungen, die das Telefon nicht checkt weil zu neu o.ä. über Zertifikat nicht korrekt eingebunden (oder Intermediate fehlt) bis hin zu wird via tcp durchgereicht und das Backend gibt falsche Antwort.

        Ohne mehr Details wird das schwer. Logs für den HAproxy lassen sich unter "Settings" des HAproxy einschalten. Als Remote Syslog Host wie es die Info darunter schon sagt einfach /var/run/log eintragen und das Level auf Warning ändern (auf Notice wird euer Log VOLL!!). Ansonsten natürlich den internal stats port konfigurieren, damit man die Status Seite hat.

        Cheers

        Don't forget to upvote 👍 those who kindly offered their time and brainpower to help you!

        If you're interested, I'm available to discuss details of German-speaking paid support (for companies) if needed.

        A 1 Reply Last reply Reply Quote 0
        • N
          NOCling
          last edited by

          Apps nutzen auch gern Websockets um dich direkt mit dem Server interagieren zu können.
          Ggf. musst du das noch in SSL Profil für den Server im HA Proxy einstellen.

          Netgate 6100 & Netgate 2100

          A 1 Reply Last reply Reply Quote 0
          • A
            Alcamar @JeGr
            last edited by

            @jegr ich habe die Settings wie von Dir beschrieben geändert, aber weiß leider nicht wo ich den Log dann auslesen kann. Auf der Konsole ist /var/run/log ein symbolischer Link, der sich nicht ausgeben lässt. Dort hatte ich den Log vermutet. Der interne Stat Port ist auf 2200 gesetzt. Aber auch damit kann ich nicht viel anfangen. Unter Status System Logs im Browser der pfsense sehe ich vor lauter Bäumen den Wald nicht mehr. :-(

            JeGrJ 1 Reply Last reply Reply Quote 0
            • A
              Alcamar @NOCling
              last edited by

              @nocling hört sich interessant an, weil ich die Ursache eher im HAProxy vermute, weil die APP mit dem Reverse Proxy auf der Synology mit den aktuellen Einstellungen ging.
              Muss ich eher im FrontEnd oder BackEnd ansetzen? Ich habe dort schon einiges ausprobiert, aber das ist nur ein herumstochern gewesen. Besser wäre es im Log auf Hinweisen zu reagieren, wie von @jeGr richtig vermerkt. Noch suche ich die Stelle, wo HAProxy mit mir spricht.

              1 Reply Last reply Reply Quote 0
              • JeGrJ
                JeGr LAYER 8 Moderator @Alcamar
                last edited by

                @alcamar said in App kommt nicht durch HAProxy:

                @jegr ich habe die Settings wie von Dir beschrieben geändert, aber weiß leider nicht wo ich den Log dann auslesen kann. Auf der Konsole ist /var/run/log ein symbolischer Link, der sich nicht ausgeben lässt. Dort hatte ich den Log vermutet. Der interne Stat Port ist auf 2200 gesetzt. Aber auch damit kann ich nicht viel anfangen. Unter Status System Logs im Browser der pfsense sehe ich vor lauter Bäumen den Wald nicht mehr. :-(

                Das steht doch alles direkt in der HILFE die unter dem Menüpunkt/Optionspunkt angegeben ist. Wenn /var/run/log genutzt wird, dann wird ins SYSLOG geloggt, das Log taucht also ganz normal neben allen anderen unter System/Logs auf wie andere Logs in einem eigenen Reiter.

                Cheers

                Don't forget to upvote 👍 those who kindly offered their time and brainpower to help you!

                If you're interested, I'm available to discuss details of German-speaking paid support (for companies) if needed.

                1 Reply Last reply Reply Quote 1
                • A
                  Alcamar
                  last edited by

                  Leider bin ich nicht substantiell weiter gekommen.
                  Das Handy und die WAN-Seite der pfsense tauschen Pakete aus, wenn ich mich an der APP anmelde.
                  Bei den Logs finde ich keine Einträge. Die haproxy Log Entries haben keinen zeitlichen Bezug zur App-Anmeldung.
                  Vielleicht gucke ich auch einfach falsch. Das ist was ich an Logs zur Verfügung stehen habe:
                  Bildschirm­foto 2023-02-28 um 12.04.09.png

                  und das die Konfiguration dazu:
                  Bildschirm­foto 2023-02-28 um 12.10.18.png
                  Bildschirm­foto 2023-02-28 um 12.10.37.png
                  Bildschirm­foto 2023-02-28 um 12.10.50.png

                  V 1 Reply Last reply Reply Quote 0
                  • V
                    viragomann @Alcamar
                    last edited by

                    @alcamar
                    Das HAproxy Log könnte hierunter zu finden sein:
                    710c20fb-a6da-42be-8fe8-6b8166cbee90-grafik.png

                    A 1 Reply Last reply Reply Quote 0
                    • A
                      Alcamar @viragomann
                      last edited by Alcamar

                      @viragomann die meinte ich, die keinen zeitlichen Bezug zu meinen Anmeldeversuche auf der App haben.

                      Ein ähnliches Verhalten habe ich auch mit einer anderen App. Die verbindet sich mit Kameras und man kann wahlweise Hostname und IP-Adresse eingeben. Bei Hostname ist das gleiche wie mit der ersten App für Hausautomation. Wenn ich allerdings die IP-Adresse nehme und VPN aufgebaut ist, kann ich mich auf den Kameras anmelden. Habe ich einen Knoten in der Namensauflösung? Leider geht die Kombi IP und VPN mit der ersten App auch nicht.

                      V 1 Reply Last reply Reply Quote 0
                      • V
                        viragomann @Alcamar
                        last edited by

                        @alcamar
                        Lief der Proxy auf der Synology auch auf SSL und Port 443?

                        A 1 Reply Last reply Reply Quote 0
                        • A
                          Alcamar @viragomann
                          last edited by Alcamar

                          @viragomann Die Einstellungen habe ich noch. Was ich nicht analog im HAProxy identifizieren kann, ist ein Haken bei "HSTS aktivieren" in der Synology.
                          Sonst sind dort die Kameras und die Hausautomation drin. Die Funktionsweise war auch die gleiche wie auf HAProxy. Wenn über Port 80 etwas kommt, wird es auf Port 443 weitergeleitet und dort dann an den entsprechenden Server (Hausautomationsserver).
                          Bei den Kameras ist es etwas anders gewesen:
                          Die Kameras kamen auf Port 80 und wurden auf Port 80 belassen. Nur der Name änderte sich. Damit zielt Deine Frage in die richtige Richtung für die Kameras.

                          V 1 Reply Last reply Reply Quote 0
                          • V
                            viragomann @Alcamar
                            last edited by

                            @alcamar
                            HSTS kannst du im Backend aktivieren. Einfach die gewünschte Zeit im Feld eintragen.
                            Allerdings würde ich das erst machen, wenn alles andere funktioniert.

                            Dass das nicht aktiv ist, macht es jetzt nicht schlechter. Es weist die Browser / Clients lediglich an, diese Seite nur noch per HTTPS aufzurufen.
                            Heißt also, was zuvor über SSL gelaufen ist, geht jetzt auch nur so.

                            Vielleicht kannst du den Zustand von zuvor erst mal in HAproxy nachstellen.

                            A 1 Reply Last reply Reply Quote 0
                            • A
                              Alcamar @viragomann
                              last edited by

                              @viragomann Das war mein Ziel. Wenn ich das rekapituliere, gibt es eine Stelle, die ich seit Deiner Frage mit dem Port prüfe, aber intellektuell noch nicht verarbeiten kann. Im Frontend bei HAProxy habe ich ein HTTP to HTTPS redirect, der alle Anfragen auf https biegt.
                              Bildschirm­foto 2023-02-28 um 17.01.28.png
                              Mit dem Browser klappt der Zugang auf diesem Weg. Die Apps hingegen gehen nicht. Kann ich diese Redirect anders lösen, ohne gleich alles neu zu stricken?

                              V 1 Reply Last reply Reply Quote 0
                              • V
                                viragomann @Alcamar
                                last edited by

                                @alcamar
                                Ja, vermutlich schon. Aber ist es überhaupt das Problem?

                                Kann die App HTTPS?
                                Wenn ja, vertraut sie dem Zertifikat?

                                Ggf. leite mal Port 80 aufs Backend zum Test.

                                A 1 Reply Last reply Reply Quote 0
                                • A
                                  Alcamar @viragomann
                                  last edited by

                                  @viragomann Die App verlangt neben der Adresse auch den Port 443. Damit müsste sie ja HTTPS können, oder? Aus der Fehlermeldung der App würde ich nicht zwangsläufig auf ein Zertifikatsproblem schlussfolgern. Dort heisst es sehr "hilfreich":
                                  'Es gab einen Fehler beim Verbinden. Dies könnte ein Problem des Servers oder der App-Einstellungen sein.'

                                  Wie leite Port 80 auf Backend? Im http-https die Action von rule:scheme https entfernen?

                                  V 1 Reply Last reply Reply Quote 0
                                  • V
                                    viragomann @Alcamar
                                    last edited by

                                    @alcamar said in App kommt nicht durch HAProxy:

                                    Die App verlangt neben der Adresse auch den Port 443. Damit müsste sie ja HTTPS können, oder?

                                    Wie? Der Port muss gesondert zusätzlich angegeben werden?

                                    Zwingend ist es nicht, aber doch anzunehmen, wenn sie sich bei Schema HTTPS bzw. Port 443 nicht beklagt.

                                    Aus der Fehlermeldung der App würde ich nicht zwangsläufig auf ein Zertifikatsproblem schlussfolgern. Dort heisst es sehr "hilfreich":

                                    'Es gab einen Fehler beim Verbinden. Dies könnte ein Problem des Servers oder der App-Einstellungen sein.'

                                    Je nach Qualität der App kann das alles mögliche bedeuten.

                                    Wie leite Port 80 auf Backend? Im http-https die Action von rule:scheme https entfernen?

                                    Ja, und eine Weiterleitung auf das Backend im Port 80 Frontend einrichten.

                                    A 1 Reply Last reply Reply Quote 0
                                    • A
                                      Alcamar @viragomann
                                      last edited by

                                      @viragomann Die App ist keine womit man zum Mond fliegen könnte, aber sie macht das wenige. :-) Die Einstellungen sind überschaubar:

                                      IMG_1731.jpg
                                      Der interne Port ist optional. Den bestimme ich ohnehin im HAProxy abhängig von der Adresse.

                                      Da HAProxy grundsätzlich geht, muss ich schauen, wie ich die Einstellungen beibehalte und die Portweiterleitung testen kann. Die ersten Versuche in diese Richtung waren nicht von Erfolg gekrönt.

                                      V JeGrJ 3 Replies Last reply Reply Quote 0
                                      • V
                                        viragomann @Alcamar
                                        last edited by

                                        @alcamar
                                        Nachdem die App einen SSL-Schalter hat, sollte das auch funktionieren.
                                        Ob HTTPS aber das Zugriffsprotokoll ist, geht hier nicht hervor.
                                        Allerdings hast du anfangs erwähnt, im Browser funktioniert genau diese Adresse?

                                        Der interne Port ist optional. Den bestimme ich ohnehin im HAProxy abhängig von der Adresse.

                                        Damit ist also der Part gemeint, auf den der Server tatsächlich lauscht?

                                        A 1 Reply Last reply Reply Quote 0
                                        • JeGrJ
                                          JeGr LAYER 8 Moderator @Alcamar
                                          last edited by

                                          @alcamar und warum ist in der App dann überhaupt ein interner Port konfiguriert?

                                          Das klingt eher wie die App von HomeAssistant, die unterscheiden will/kann ob der Zugriff von extern geht oder intern und je nachdem andere Verbindungseinstellungen nutzt. Und ggf. versucht er es dann via Domain+8084 und das klappt dann natürlich nicht.

                                          Ich würde wenn es im Browser geht mal mit Port 443 als internem oder gar keinem probieren, damit er sauber Domain+443 nutzt.

                                          Don't forget to upvote 👍 those who kindly offered their time and brainpower to help you!

                                          If you're interested, I'm available to discuss details of German-speaking paid support (for companies) if needed.

                                          A 1 Reply Last reply Reply Quote 0
                                          • A
                                            Alcamar @viragomann
                                            last edited by

                                            @viragomann Der Hausautomationserver bietet je nach Client (Browser, Tablet, Handy) verschiedene Ports (8083-8085). Die App nutzt den Handy-Port, wenn er angegeben wird. Man kann diesen also optional in der App angeben. Ich habe das aber mit dem Namen gelöst. M.Name.de, T.Name.de und Name.de landen auf den richtigen Port, ohne diesen explizit anzugeben. In der App haber ich den eingetragen, aber der Proxy holt mit dem Namen den richtigen Backend und Port.

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.