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

    App kommt nicht durch HAProxy

    Scheduled Pinned Locked Moved Deutsch
    86 Posts 4 Posters 53.7k Views
    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 @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
                    • A
                      Alcamar @JeGr
                      last edited by Alcamar

                      @jegr das ist so einen App. Mit Browser komme ich mit 443 problemlos an Server dran. In der App ist es ein Muss-Feld. Also muss ich diesen angeben. Das war bisher auch so im alten Reverse-Proxy.
                      Ich habe alle Portkombinationen erfolglos ausprobiert

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

                        @alcamar said in App kommt nicht durch HAProxy:

                        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.

                        Und das lief im Synology ebenso über die Namen?

                        Mir ist nicht klar,. warum das überhaupt über einen HTTP-Proxy laufen muss, wenn die App ohnehin auf einen eigenen Port geht, der in dieser nur einmal eingestellt werden muss. Mir wäre ziemlich gleichgültig, welcher das ist.

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

                          @viragomann das lief über die Namen. Ich habe auf der Fritz nur Port 443 und Port 80 offen und VPN. Das ist auch meine Motivation für einen Proxy. Vor Jahren hatte ich alle Ports für die Hausautomation offen. Mit dem Proxy habe ich alle geschlossen.

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

                            @alcamar Ja aber wenn du das über den Namen gelöst hast, warum dann nicht so:

                            • m.sub.domain.de (wird ja nur für Mobile benutzt?)
                            • extern auflösen auf IP der Fritte
                            • checken, dass 443 dann auf den Homeserver weitergereicht wird an den richtigen Port
                            • intern direkt auf den Homeserver auflösen lassen via DNS Override!
                            • dadurch intern kein Proxy nötig, weil er direkt mit m.sub.domain.de:8084 an den Server rangeht/rankommt, während er extern dann :443 nutzt und via Proxy umgesetzt wird.

                            Und die anderen Kisten nutzen dann ja eh eine andere Domain und werden entsprechend anders gehandelt?
                            Damit hast du extern immer noch nur 80/443 offen und intern verbindest du dich ohne Proxy direkt mit der Kiste was eh schneller sein dürfte. Und gut ist :)

                            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 2 Replies Last reply Reply Quote 0
                            • A
                              Alcamar @JeGr
                              last edited by

                              @jegr Hallo Jens, danke. Ich werde das alternativ prüfen. Im gleichen Augebenblick, wie Dein Post kam, aber ich eine "Lösung"., die ich zwar noch nicht kapiere, und eher zufällig gefunden habe. Wenn ich beim Default Backend den Hausautomationsserver eintrage, macht die App keine zicken. ob das wirklich eine Lösung ist, weiß ich nicht, weil vielleicht geht jetzt irgendetwas anderes nicht. Muss ich prüfen...

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

                                @alcamar
                                Das deutet darauf hin, dass sonst für die Zugriffe vom Handy keine Regel angewandt wurde.

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

                                  @jegr die m.sub.domain.de, die nur das Handy nutzt, lässt sich als Host im DNS HostOverride nicht eingeben. Der Hostname muss wohl ohne "." sein. Mein m.sub will er nicht.
                                  Ich habe das Prinzip auf die Kamera-App angewandt, wo ich ein sehr ähnliches Problem habe. Exterene Auflösung klappt, 443 landet auf auf der pfsense, wo ich ein Host Override auf die Cam1 habe. Trotzdem meldet sich die App nicht an der Cam an.

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

                                    @alcamar said in App kommt nicht durch HAProxy:

                                    @jegr die m.sub.domain.de, die nur das Handy nutzt, lässt sich als Host im DNS HostOverride nicht eingeben. Der Hostname muss wohl ohne "." sein. Mein m.sub will er nicht.

                                    Ja und? Dann trage doch m als Hostname und sub.domain.de als Domain ein, ist ja auch korrekt so?
                                    Dass es funktioniert kannst du dann mit Diagnostics/DNS Lookup testen - und dein Handy/App sollte es auch richtig auflösen bzw. die Sense als DNS haben, sonst macht der ganze Spaß natürlich keinen Sinn.

                                    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 Du meinst im HAProxy nimmt von der Url gar keine Notiz. Nur wenn ich ich sie als Default eingebe, leitet er dorthin standardmäßig weiter?
                                      Aber dann warum dieses Verhalten über die App und nicht auch über den Browser?

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

                                        @alcamar
                                        Der Browser nutzt ja einen anderen Host, oder?

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

                                          @jegr Der Name m klappt natürlich und der Rest ist dann Domain. Peinlich.
                                          Diagnostics/DNS Lookup wirft mir die interne IP-Adresse des Homeservers aus. Als Nameserver 127.0.0.1 (Hätte das die pfsense erwartet 192.168.1.1)
                                          Bei der App wird es wieder problematisch, weil ein DNS kann ich dort nicht eintragen. Ich dachte, dass OpenVPN das DNS-Problem lösen würde, tut es aber auch nicht.
                                          Die Ping-App auf dem Handy gibt auf m.sub.domain.de eine IP in Hexa-Code zurück.

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

                                            @viragomann Der Standardweg über den Browser ist name.domain.de Nur die App nutzt als Adresse m.name.domain.de. Im Browser geht diese natürlich auch. Der Unterschied zwischen den Adressen ist nur die Darstellung.

                                            • Die Standard-Adresse ist die nomale Web-Seite in Standardauflösung und

                                            • die m.-Adresse ist die Darstellung kleine Devices.

                                            name.domain.de hat den Default-Port 8083. Nimmt man explizit den Port für die kleinere Auflösung geht das mit name.domain.de:8084.
                                            Um mir den Port zu sparen habe ich m.name.domain.de = name.domain.de:8084

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