Jump to content

was ist eigentlich aus der HTTPS Version geworden?


MaM

Recommended Posts

In internen Beta-Versionen beherrscht der Webserver des Media Servers bereits HTTPS. Es wird zumindest von einem Betatester regelmäßig (und erfolgreich) mit einem selbstsignierten Zertifikat benutzt. Die Arbeiten sind vorläufig abgeschlossen.

 

Beim letzten eher außerplanmäßigen Release (6.1.6 bzw. 2.1.6) ging es hauptsächlich um Fixes für Probleme, die aktuell Schwierigkeiten bereiten. Alles, was größere bzw. konzeptionelle Änderungen beinhaltet, haben wir auf ein späteres Major Release verschoben. Dabei geht es noch um ganz andere Themen, die nicht abgeschlossen sind.

 

Link to comment
  • 1 month later...

damit das hier nicht in Vergessenheit gerät:

 

Gestern gab Mozzilla bekannt, dass ab Version 76 Firefox den (zunächst optionalen) Modus "https only" erhält. Ist der aktiviert, werden Webseiten NUR NOCH angezeigt, wenn sie über HTTPS geladen wurden.

Die Version soll voraussichtlich Ende Mai erscheinen (dank Corona wohl etwas später).

 

Ab Version 80 wird der Modus Standard, ab Version 84 kann man ihn nicht mehr deaktivieren.

 

Also lieber Griga... KOMM IN DIE HUFE mit dem Update...

 

Link to comment
1 hour ago, MaM said:

Ab Version 80 wird der Modus Standard, ab Version 84 kann man ihn nicht mehr deaktivieren.

 

Ich frage mich, ob die Browser wirklich so radikal vorgehen können. Was ist mit den Webinterfaces von irgendwelchen Geräten im Heimnetz? Sollen die Leute alle Geräte ohne HTTPS-Fähigkeiten wegwerfen, nur weil sie das Webinterface nicht mehr aufrufen können?

 

Link to comment

Ich habe keinen Einfluß auf diese Leute, mir gefallen die Entscheidungen auch nicht, aber da geht es nun mal hin.

Ich hab versucht, eine Freigabe für "lokale Netze" einzufordern, aber bin gescheitert. Mit V6 und ohne NAT gibt es ja auch gar kein "lokales" Gerät mehr.

 

Und wenn Firefox anfängt, die anderen ziehen auf Kurz oder Lang nach.

 

Die lokalen Geräte interessieren keinen mehr, Du sollst ja eh alles auf gemieteten Cloudservern laufen lassen ?

Das wird dann die Hochkonjunktur der Reverse Proxies.

Im Prinzip bräuchte man Dein Update nicht, ein Reverse Proxy tuts ja auch. Allerdings ist euer Webinterface recht... hmmm, wie sag ichs, nett???... "rustikal" programmiert ?

Sehr häufig gehen Links wieder auf absolute Pfade, wie "/".

Das macht es dann unmöglich, einen Reverse Proxy für mehrere Anwendungen gleichzeitig nutzen zu können. (so z.B. der Media Server im virtuellen Verzeichnis "/VCR/..." , meine Solaranlage unter "/Solar/..." usw.)

Durch die brutal harten Links landet man dann immer wieder beim Proxy Verteiler...

 

 

Link to comment
1 hour ago, MaM said:

Sehr häufig gehen Links wieder auf absolute Pfade, wie "/".

 

Wo genau? Wenn ich weiß, wonach ich schauen muss, ändere ich das auf relative Pfade.

 

Link to comment

sorry, ich hab das nicht so detailliert verfolgt, in der Adressleiste zeigt er ja immer "...#" an, erst, wenn man draufklickt merkt man, dass man in der Wüste landet.

 

War mir einfach zu aufwändig, JEDEN Klick zu prüfen. Nach den ersten paar, die alle daneben gingen, habe ich das Experiment beendet.

 

 

Link to comment
  • 2 weeks later...

Der "X-Forwarded-Path" header muss im proxy korrekt gesetzt sein, dann stimmen auch die URLs im webinterface.

Mit nem anständigen eigenen DNS server kann man aber auch einfach verschiedene hostnamen benutzen und kann sich das mit den  URL Pfaden sparen.

 

Geht mit Apache und nginx problemlos.

Link to comment
vor 5 Minuten schrieb VinoRosso:

Der "X-Forwarded-Path" header muss im proxy korrekt gesetzt sein, dann stimmen auch die URLs im webinterface.

Mit nem anständigen eigenen DNS server kann man aber auch einfach verschiedene hostnamen benutzen und kann sich das mit den  URL Pfaden sparen.

 

Geht mit Apache und nginx problemlos.

Verräts Du uns auch WIE?

Beides scheint mir nicht so einleuchtend zu sein, zumal das Problem mit #2 erst richtig zur Geltung kommt.

 

Edited by MaM
Link to comment

Der X-Forwarded-Path header wert muss auf deinen gewünschten Pfad gesetzt werden. Also "VCR" bei dir.

Die DNS Variante ist allerdings eleganter und läuft bei mir mittlerweile, vorher hab ich auch die Pfade benutzt.

 

DNS Eintrag anlegen, zum Beispiel vcr.mam.lan, der auf deinen proxy server zeigt und dann eine nginx/apache config für den entsprechenden hostnamen anlegen.

Wenn du dann im browser vcr.mam.lan aufrufst ist alles erledigt und ohne zusätzlich URL Pfade.

Ich kenn mich allerdings nur mit diesen beiden servern aus, bei anderen webservern kann ich nicht helfen. Ob zum Beispiel IIS sowas überhaupt kann weiss ich nicht.

 

Link to comment
vor 2 Minuten schrieb VinoRosso:

DNS Eintrag anlegen, zum Beispiel vcr.mam.lan, der auf deinen proxy server zeigt und dann eine nginx/apache config für den entsprechenden hostnamen anlegen.

Wenn du dann im browser vcr.mam.lan aufrufst ist alles erledigt und ohne zusätzlich URL Pfade.

 

Hmm, kommt mir zu einfach vor, aber, ich probiers mal eben aus:

 

Nö, bin zu doof für Apache.

DNS Eintrag (global: vcr.werries.de) erzeugt mit CNAME auf wordpress.werries.local (der Proxy Apatsche, normalerweise nur die Homepage auf Port 80 / 443)

 

Beim Indianer testweise noch eingefügt:

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/usr/local/share/apache24/misc/"
    ServerName vcr.werries.de
    ServerAlias vcr.werries.de
    ErrorLog "/var/log/dummy-host.example.com-error_log"
    CustomLog "/var/log/dummy-host.example.com-access_log" common
</VirtualHost></VirtualHost>

 

rufe ich dann vcr.werries.de auf, so dauerts ein paar Sekunden, dann erscheint wieder meine normale Homepage (also das Wordpress auf Port 80 OHNE Virtualhost). ?

Und logfiles wurden auch nicht angelegt.

 

Also, irgendwie noch nicht so ausgreift, aber, Du klärst mich sicherlich auf ?

Link to comment
NameVirtualHost *:80
<VirtualHost *:80>
        ServerName vcr.werries.de

        ErrorLog /var/log/apache2/error.log
        CustomLog /var/log/apache2/access.log combined

        <Location / >
            ProxyPass         http://localhost:8081/
            ProxyPassReverse  http://localhost:8081/
        </Location>

</VirtualHost>

NameVirtualHost ist wichtig.

So sieht eine config aus die bei uns im Unternehmen läuft.

 

Für den DMS fehlen hier noch ein paar x-forwarded header.

X-Forwarded-Proto, X-Forwarded-For müssen hier auch gesetzt sein.

Ich hab aber keine apache configs mehr für den DMS.

bei Proxypass und Proxypassreverse muss natürlich die DMS URL und Port hinterlegt sein.

 

EDIT:

apache muss natürlich mod_proxy enabled haben.

die Datei muss in sites-available liegen und per a2enmod aktiviert werden.

 

Wenn du die Wahl hast nimm nginx, da geht alles viel einfacher.

Edited by VinoRosso
Link to comment
server {
    listen 80;
    #listen 443 ssl;
    server_name {{domain_name}};
    server_tokens off;
    gzip on;
    gzip_disable "msie6";
    gzip_vary on;
    gzip_proxied any;
    gzip_comp_level 6;
    gzip_buffers 16 8k;
    gzip_http_version 1.1;
    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;


    #ssl_certificate            /etc/ssl/HomeSweethome.crt;
    #ssl_certificate_key        /etc/ssl/HomeSweethome.key;
    #ssl_protocols TLSv1.3 TLSv1.2;
    #ssl_prefer_server_ciphers on;
    #ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384;
    #ssl_ecdh_curve secp384r1; # Requires nginx >= 1.1.0

    location / {
        proxy_pass http://{{dms-url}}:{{dms-port}}/;
        proxy_http_version 1.1;
        proxy_buffering off;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Host $host:$server_port;
        proxy_set_header X-Forwarded-Server $host;
        #proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Upgrade $http_upgrade;
        #proxy_set_header Connection $http_connection;
        keepalive_timeout 0;
    }

}

So sähe das für nginx aus. SSL hab ich auskommentiert.

Das in den doppelt geschweiften Klammen muss natürlich für dich angepasst werden

Die Datei muss einfach in den config ordner wo auch die anderen configs liegen.

Normal sowas wie /etc/nginx/conf.d

Link to comment
vor 3 Stunden schrieb VinoRosso:

NameVirtualHost ist wichtig.

Apache scheint das anders zu sehen:

Starting apache24.
[Sat Apr 04 15:29:22.245765 2020] [proxy_html:notice] [pid 832] AH01425: I18n support in mod_proxy_html requires mod_xml2enc. Without it, non-ASCII characters in proxied pages are likely to display incorrectly.
AH00548: NameVirtualHost has no effect and will be removed in the next release /usr/local/etc/apache24/httpd.conf:537
AH00557: httpd: apr_sockaddr_info_get() failed for test
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message

 

Sieht so aus, als wenn Deine Tipps eine recht geringe Lebensdauer hätten. Vielleicht dochmal an Update denken?

 

Auch helfen die Verweise auf merkwürdige Dateien/Befehle/Verzeichnisse noch merkwürdigerer Linux Distributionen nicht weiter. Hier ist ubuntufreie Zone! (aber ich versteh schon, wofür der Edit gut sein sollte. Es fehlen aber noch diverse Module, bis das wirklich rundläuft).

 

Na ja, ich schmeiss den Indianer mal weg (ist mir eh zu übertrieben für den recht simplen Job) und probier mal nginx...

Edited by MaM
Link to comment
11 minutes ago, MaM said:

Sieht so aus, als wenn Deine Tipps eine recht geringe Lebensdauer hätten. Vielleicht dochmal an Update denken?

Und schwupps hab ich keine Lust mehr dir bei deinen Problemen zu helfen ?

Bei weiteren Problemen einfach mal Googlen, bei mir läufts schliesslich ?

Es geht definitiv - auch mit apache und auch mit 2.4. Halt irgendwie anders jetzt, aber ich bin kein server admin und ich geb keine Garantie auf irgendwelche Tipps.

 

Wenn ich nen apache update, ersetz ich ihn durch nginx. Damit erspart man sich viel Leid.

Die nginx config von oben hab ich bei mir genau so laufen und das klappt stressfrei ?

 

Link to comment

 

vor 13 Minuten schrieb VinoRosso:

Und schwupps hab ich keine Lust mehr dir bei deinen Problemen zu helfen ?

Bei weiteren Problemen einfach mal Googlen, bei mir läufts schliesslich ?

Es geht definitiv - auch mit apache und auch mit 2.4. Halt irgendwie anders jetzt, aber ich bin kein server admin und ich geb keine Garantie auf irgendwelche Tipps.

 

Wenn ich nen apache update, ersetz ich ihn durch nginx. Damit erspart man sich viel Leid.

Die nginx config von oben hab ich bei mir genau so laufen und das klappt stressfrei ?

 

Du gibst aber schnell auf ?

Klar gehts, aber die Warnung deutet eben darauf hin, dass es nicht mehr lange gehen wird...

 

Egal, mit NGinx gehts, ist halt n normaler Reverse Proxy, macht also dasselbe, wie bislang mein IIS. Auch mit unterschiedlichen Hostnamen kommt er klar und leitet sie an verschiedene Ziele weiter. Und der DMS funktioniert auch durch den Tunnel. So weit so gut.

 

ich werd mal etwas damit rumspielen, eigentlich will ich ja nur EINEN hostname und die Proxies in Unterpfaden anlegen. Dann braucht man nur ein Zertifikat für alle Dienste auf einmal. Mal gucken, ob ich das hinbekomme...

 

 

Link to comment
vor 18 Stunden schrieb MaM:

Klar gehts, aber die Warnung deutet eben darauf hin, dass es nicht mehr lange gehen wird...

 

Wenn Du das (kommende) Problem doch schon kennst, dann nimm doch einfach VinoRossos Lösung auf, ergänze sie um Deine Lösung, und poste sie hier. Dann ist allen geholfen.

 

Da wäre auch ich dran interessiert.

 

LG, Goggo

Link to comment

Du sprichst so

vor 1 Minute schrieb Goggo16:

 

Wenn Du das (kommende) Problem doch schon kennst, dann nimm doch einfach VinoRossos Lösung auf, ergänze sie um Deine Lösung, und poste sie hier. Dann ist allen geholfen.

 

Da wäre auch ich dran interessiert.

 

LG, Goggo

Na, das "kommende Problem" hat sich mir ja auch erst offenbart, nachdem ich seinen Kram ausprobier hatte mit Apache.

 

Das NGINX Zeuch von ihm kannste so nehmen, das funktioniert. Auch, wenn man nicht "/" sondern einen anderen Pfad umleitet, das klappt gut. Ich brauch da nix zu ergänzen, das klappt so out of the box. (na ja, Du must schon noch n certbot installieren, der die Letsencrypt Zertifikate holt und dem NGinx unterschiebt, aber das sind ja Peanuts)

 

Kann ich leider nicht sofort verwenden, da ich im Moment auf Apache festhänge. Da läuft eine grössere WordPress Site drauf mit ein paar tausend Artikeln. Da muss ich ersmal vorsichtig rumexperimentieren, wie ich die auf Nginx kriege (Nein lieber Vino, mit reverse Proxy gehts nicht, die Site enthält viele Redirects und Subsites, da kommt der Proxy nicht hinterher).

Nicht, das ich Apache so toll finde, ist eher nervig. Aber aus historischen Gründen bin ich da im Moment eben leider eingeschränkt. Vorige Woche habe ich allerdings schonmal die Kiste entlinuxifiziert und die Site auf FreeBSD (mit externem SQL Server) umgehoben. Hätte ich da schon gewußt, dass ich von Apache auf NGinx wechseln soll, dann hätte ich das in einem Rutsch eingearbeitet. So muss ich nun komplett wieder von vorne anfangen, aber egal... man ist ja Rentner ?

 

Leider ist mir gestern meine Lieblingsworkstation unter den Fingern gestorben, auch das Backup mochte sie nicht mehr. Also laaange Neuinstallation, bis man alles wieder am Laufen hat.. Deshalb kann ich mich um den Webserver erst wohl wieder in ein paar Tagen kümmern (man muss ja erstmal wieder die lebensnotwendigen Dinge wie Outlook, Photoshop und SPIEEELE!!! zum Laufen bringen, ausserdem wäre es nett rauszubekommen, WARUM das Dingen so den Heldentot gestorben ist...)

 

Link to comment

Nun gut, mit neuer (zumindest neu installierte) Workstation kann man sich wieder dem Problem zuwenden, und es lösen! ?

 

Es geht ganz einfach mit Apache, VinoRosso war der Antwort schon recht nahe, es fehlte nur eine kleine (aber wichtige!) Anweisung.

 

Im Prinzip braucht man in die http.conf nur diese drei Zeilen hinzuzufügen:

 

ProxyRequests Off
ProxyPass "/vcr/" "http://vcr.werries.local:8089/"
ProxyPassReverse "/vcr/" "http://vcr.werries.local:8089/"

 

(wobei "ProxyRequests" beim Rotwein fehlte, der ganze Kram mit location... und vor allen Dingen die ganzen Header sind überflüssig!)

Wichtig ist dabei, dass alle URLS auf "/" enden, sonst gibts den bösen 500e Server Fehler und ganz mystische Einträge ins Fehlerprotokoll.

 

Damit das funktioniert müssen allerdings einige Module geladen werden, bei mir waren zusätzlich erforderlich:

 

LoadModule xml2enc_module libexec/apache24/mod_xml2enc.so
LoadModule proxy_html_module libexec/apache24/mod_proxy_html.so
LoadModule proxy_module libexec/apache24/mod_proxy.so
LoadModule proxy_http_module libexec/apache24/mod_proxy_http.so
LoadModule ssl_module libexec/apache24/mod_ssl.so
 

Und, keine Gewähr für Linux! FreeBSD lädt beim Einbau des Proxy Modules noch eine zusätzliche Konfigurationsdatei, da steht reichlich Kram drin, den man wohl brauchen wird. Wenn es also bei euch nicht funktioniert, das hier noch in die httpd.conf mit aufnehmen (ohne Kommentare blieb nicht mehr viel übrig ? )

[root@HomePageTest /usr/local/etc/apache24/extra]# cat proxy-html.conf | grep -v ^# (entferne Kommentarzeilen)

ProxyHTMLLinks  a               href
ProxyHTMLLinks  area            href
ProxyHTMLLinks  link            href
ProxyHTMLLinks  img             src longdesc usemap
ProxyHTMLLinks  object          classid codebase data usemap
ProxyHTMLLinks  q               cite
ProxyHTMLLinks  blockquote      cite
ProxyHTMLLinks  ins             cite
ProxyHTMLLinks  del             cite
ProxyHTMLLinks  form            action
ProxyHTMLLinks  input           src usemap
ProxyHTMLLinks  head            profile
ProxyHTMLLinks  base            href
ProxyHTMLLinks  script          src for

 

Danach ist der DMS über Internet erreichbar und läuft auf SSL:

 

 

Itworks.jpg

Link to comment
  • 7 months later...

Seit heute gibt es Firefox 83, der hat

Firefox und Thunderbird: Sicherheitsupdates und HTTPS-only-Modus

Ist zwar erstmal optional, aber spätestens in 2 Versionen wirds dann Default und dann gehen beim DMS die Lichter aus...

 

Es wird also mal langsam Zeit, die Gluckerei aufzugeben und die "neue Version" der Weltöffentlichkeit zu präsentieren.

 

Link to comment
On 4/8/2020 at 11:04 AM, MaM said:

(wobei "ProxyRequests" beim Rotwein fehlte, der ganze Kram mit location... und vor allen Dingen die ganzen Header sind überflüssig!)

Wichtig ist dabei, dass alle URLS auf "/" enden, sonst gibts den bösen 500e Server Fehler und ganz mystische Einträge ins Fehlerprotokoll.

 

Du kannst die header ruhig weglassen und sehen was dann alles nicht funktioniert.

Dann werden halt bestimmte URLS falsch zusammengebaut, aber das darfst du ruhig selbst rausfinden ?

Link to comment
vor 13 Minuten schrieb VinoRosso:

Dann werden halt bestimmte URLS falsch zusammengebaut, aber das darfst du ruhig selbst rausfinden ?

jo, habe ich nun schon eine geraume Zeit lang, da fehlt nix und geht alles. Nur mit den Cookies scheint es etwas zu klemmen, sie werden nie geupdated, so wie ich das im Moment beobachte. Löscht man sie, gibts neue, aber solange sie da sind, tut sich nix.

 

Das Einzige, was wirklich wichtig ist: die Verzeichnisnamen müssen auf "/" enden, sonst werden die URLs falsch zusammengebaut.

 

DAS ist wirklich das Einzige, was Apache zum Überleben und Einbinden braucht:

ProxyPass "/vcr/" "http://vcr.XXXX.XXX:8089/"
ProxyPassReverse "/vcr/" "http://vcr.XXXX.XXX:8089/"
<Location /vcr/>
        Header merge Cache-Control no-cache env=NO_CACHE
        Require ssl
</Location>

wobei "Header merge..." auch noch Kür ist, war nur ein Versuch die Seitenupdates zu erzwingen, bringt aber keine sichtbare Verbesserung.

Und auch der Rest des "Location..." Blocks ist reine Kür, er sorgt nur dafür, dass man sich nicht ohne Verschlüsselung bei den Seiten reinschleichen kann. Effektiv gebraucht werden nur die Zeilen "ProxyPass" und "ProxyPassReverse" (wobei ich nicht wirklich verstehe, warum man sie getrennt angeben muss, mir fällt keine Situation ein, wo Vor und Rückweg verschiedene Wege nehmen sollten, vielleicht erforderlich, wenn der interne Server nochmal umleitet, keine Ahnung).

 

Edited by MaM
Link to comment
vor 1 Minute schrieb VinoRosso:

Und die vom backend generierten m3u Playlisten sind auch alle mit der richtigen URL zusammengebaut? ?

keine Ahnung, son Kram benutz ich nicht. Mir gehts um das Webinterface, nix anderes.

Ich nehm den DMS nur zu Aufnehmen, Abspielen ist mir sowas von egal, dafür gibts andere Programme.

 

Edited by MaM
Link to comment

Jo und genau dafür sind die Header da, aber ich hab da keine Lust mit dir zu diskutieren.

Das ist nicht Zielführend bei dir…

 

Und deine Cookie Probleme kommen sicher auch daher, aber du beschäftigst lieber Griga damit anstatt das richtig zu lösen.

Edited by VinoRosso
Link to comment
vor 19 Minuten schrieb VinoRosso:

Jo und genau dafür sind die Header da, aber ich hab da keine Lust mit dir zu diskutieren.

Das ist nicht Zielführend bei dir…

Genau, lass es einfach. Mit Streaming ist hier kein Blumentopf zu gewinnen, ob auf PC oder Android oder was weis ich wo. Es interessiert einfach niemanden hier. Hoffe doch einfach, dass "die neue Version, die ganz bald erscheint" Deine ganzen Probleme löst und Du gar keinen Proxy mehr brauchst (hier wird das Teil allerdings nicht mehr zum Einsatz kommen bzw das Feature aktiviert werden).

 

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...