it-swarm.com.de

Die nahtloseste Möglichkeit, um auf Port 80 zuzugreifen und mit Apache automatisch zu https umzuleiten

Ich arbeite mit einem Heimserver und mein ISP blockiert Port 80. Ich habe DD-WRT auf meinem Router eingerichtet, damit ich andere offene Ports (wie 443 und 8080) auf den Server umleiten kann. Ich habe auch dynamisches DNS auf einem automatisch aktualisierenden A-Eintrag über NameCheap eingerichtet.

Mein Endziel ist Folgendes: Ein Benutzer wechselt zu http: /dev.homeserver.com und erhält automatisch https://dev.homeserver.com ohne benutzerdefinierte Ports in der Adressleiste. Ich möchte automatisch zu https umleiten, da ich der Meinung bin, dass Verschlüsselung wichtig ist und https überall sein sollte. Außerdem möchte ich in der Lage sein, http: /homeserver.com an https://homeserver.com und alle Anfragen wie http: /homserver.com/blah/this/index umzuleiten. php? um automatisch zu http umgeleitet zu werdens: //homserver.com/blah/this/index.php ?, etc.

Das Problem ist, dass ich, damit ich Benutzer über unsere Domain (z. B. dev.homeserver.com) an den Server senden kann, sie an einen anderen Port als 80 umleiten muss, um zum Server zu gelangen. Im Moment mache ich das über eine namengebundene URL-Weiterleitung, die Host dev auf http: /dev.homeserver.com: 8080 weiterleitet. Das funktioniert, aber das Problem ist, dass der Port in der URL angezeigt wird, was ich vermeiden möchte. Ich kann die URL-Maskierung aktivieren, aber in der Adressleiste wird immer dev.homeserver.com angezeigt. Dies kann ärgerlich sein, da ich und meine Kollegen normalerweise beim Testen von PHP und beim Codieren aus der Addy-Leiste kopieren.

Ich sehe, dass no-ip eine Möglichkeit hat, dies mit einem Port 80 Redirect zu tun: , aber es sieht einfach so aus, als würde es an eine IP weitergeleitet und verliert Der DNS-Name in der Adressleiste, sobald die Site antwortet.

Ich habe auch ein VPS mit Port 80 geöffnet und habe ein bisschen über ProxyPass gelesen, aber ich möchte vermeiden, Abhängigkeiten zwischen dem Heimserver und VPS zu erstellen. Trotzdem würde ich gerne hören, ob dies eine Option sein könnte, wenn es der einzige Weg nach vorne ist.

(musste einen/in-Link loswerden, da ich damit keine URLs mit meinem aktuellen Ruf posten kann.)

1
montag

Tatsächlich war dies definitiv möglich (und völlig kostenlos) mit viel Hacking und Versuch und Irrtum. Ich habe auf einem VPS einen Reverse-Proxy eingerichtet, was gut funktioniert hat, aber es hat mir trotzdem nicht gefallen, dass die dadurch verursachte Abhängigkeit von dem VPS eingerichtet werden musste (da die beiden Server, die ich habe, völlig unabhängige Aufgaben ausführen).

Ich habe zunächst CloudFlare und sein erweitertes Url-Umschreibmodul ausprobiert und es war in der Lage, Url-Anfragen von 80 () http) auf 443 (HTTPS) umzuschreiben. Das Problem ist, dass es versucht, mit dem A-Datensatz auf Port 80 zu kommunizieren (siehe https://www.lowendtalk.com/discussion/50106/cloudflare-proxy-Origin-other-than-port-8 =). Die kostenlose Version von CloudFlare bietet Ihnen außerdem nur fünf erweiterte DNS-Optionen. Ich habe ungefähr 8 Subdomains, also würde das auch nicht funktionieren.

Ich habe zufällig mit meiner Namecheap-Domain herumgespielt und festgestellt, dass die DNS-Einstellungen eine URL-Umschreibung bieten. Deshalb habe ich versucht, sub.example.com auf https://sub.example.com umzuleiten. Ich habe nicht sofort eine Fehlermeldung erhalten, was bei dynu.com und afraid.com passiert ist. Mit diesen kannst du diese Konfiguration nicht speichern. In der Tat, Angst sagt Ihnen, dass es nicht möglich ist, weil es eine "Endlosschleife" erstellen würde, was zu einem gewissen Grad wahr ist, weil der A-Datensatz (oder CNAME-Datensatz) technisch ambivalent zu der umzuschreibenden URL ist.

Etwas mit Namecheap (der spezielle dynamische A + -Datensatz vielleicht?) Ermöglicht Ihnen diese Art der Umleitung. Ich konnte nichts in ihren Dokumenten finden, das dies erwähnt. Das Interessante ist, dass eine Traceroute zu Ihrem DNS-Datensatz Sie nicht weiter bringt. Wenn Sie Ihren DNS-Namen anpingen, erhalten Sie nicht Ihre Server-IP, sondern eine Namecheap-Server-IP. Ich denke, es muss also eine Art Umkehrung sein Proxy-Setup an ihrem Ende. Denken Sie daran, wenn Sie etwas wie WoL machen möchten (Sie benötigen einen separaten A-Datensatz). Bisher bin ich auf keine Probleme gestoßen.

Wie auch immer, Namecheap bietet kostenlose DNS-Verwaltungsdienste an, also habe ich mir das geholt und DNS-O-MATIC eingerichtet und hatte eine perfekt funktionierende Website, die zu Hause gehostet wurde. Wenn ein Besucher nun versucht, auf http:/beispiel.com/xyz zuzugreifen, wird er immer nahtlos und ohne Portmüll in der URL zu https:/beispiel.com/xyz umgeleitet. Die Ports scheinen geringfügig zu sein, aber wenn ich jemandem mündlich einen Link gebe, ist das viel einfacher.

In der Hoffnung, dass dies jemand anderem erspart, so viel Zeit wie mir dafür aufzuwenden.

UPDATE:

Die Namecheap-Lösung funktioniert nicht mehr. Ich glaube, sie haben in den letzten sechs Monaten einen Patch angewendet oder die Umschreiberegeln geändert, die diese Konfiguration aufgrund von Konflikten beim Umschreiben von Einträgen/URLs wie bei anderen DNS-Anbietern nicht mehr zulassen. Ich habe die Hoffnung aufgegeben - zu diesem Zeitpunkt gibt es keine kostenlose Lösung, ohne einen Reverse-Proxy zu implementieren, oder bis CloudFlare es Ihnen ermöglicht, einen anderen Port als 80 anzugeben.

Wenn jemand einen fortgeschrittenen DNS-Anbieter kennt, der das kann, was der Namespace früher getan hat, lassen Sie es mich wissen.

Für alle Interessierten gibt es einen interessanten Artikel zum Erstellen eines kostenlosen Reverse-Proxys mithilfe einer kostenlosen Testversion von Azure Web Apps. Es scheint jedoch, dass ein Kontingent von 165 MB pro Tag zur Verfügung steht. Trotzdem würde dies für die meisten Menschen funktionieren. Der Link zu diesem Artikel befindet sich in meinem Kommentar unten, da ich nicht genug Reputation habe, um etwas zu posten.

1
montag

Wenn Sie Cloudflare verwenden, können Sie mit deren Seitenregeln Weiterleitungen wie diese einrichten. Stellen Sie sicher, dass SSL auf der Registerkarte "Krypto" auf "Vollständig" eingestellt ist, damit die Verbindung zu Ihrem Server auch über HTTPS hergestellt wird.

Cloudflare, their [Page Rules

Sie müssen deren DNS verwenden, aber dies erleichtert die Handhabung dieser Dinge erheblich. Außerdem wird Ihr Heimserver entlastet.

2
Andrew Lott