Hauptmenü

Apache https Tablet ui

Begonnen von mani, 27 Juli 2019, 22:32:28

Vorheriges Thema - Nächstes Thema

mani

Hallo,

bin gerade dabei mein Tablet ui mit https zu verschlüsseln über Apache.



<VirtualHost *:443>

                ServerAdmin webmaster@localhost

                ServerName xx

                DocumentRoot /opt/fhem/www/tablet

                <Directory /opt/fhem/www/tablet>
                Order allow,deny
                Allow from all
                Require all granted
                Options +Indexes
                </Directory>

                LogLevel alert rewrite:trace2
                ErrorLog ${APACHE_LOG_DIR}/error.log
                CustomLog ${APACHE_LOG_DIR}/access.log combined

                SSLCertificateFile /etc/apache2/ssl/xx.crt
                SSLCertificateKeyFile /etc/apache2/ssl/xx.key

                <Location /fhem>
                RewriteEngine On
                ProxyPass http://localhost:8083/fhem
                ProxyPassReverse http://localhost:8083/fhem
                #AuthType Digest
                #AuthName "HTTP Digest Access"
                #AuthDigestProvider   #Require all granted
                #Order allow,deny
                #Allow from all

                #SetOutputFilter INFLATE;proxy-html;DEFLATE
                </Location>


        </VirtualHost>


funktioniert auch soweit das ich die Hauptseite aufrufen kann.
Nun hab ich aber noch weiter Seiten mit iframe und Swipper eingebunden und scheinen alle keine Verbindung zu fhem zu haben.
Woran könnte das liegen?

MFG Mani
               





RasPi B+,Onkyo_AVR,Luxtronik2,Logo7,Mpd,Arduino Uno mit Ethernet,KNX,Jablotron

amenomade

Deine Apache Config erlaubt nur aus www/tablet

Für iframes, die auf ein ganz anderes Domain führen, musst Du die explizit erlauben.

Hinweis: such im Internet nach Header set X-Frame-Options "ALLOW-FROM https://www.zyx.xyz"
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

mani

hallo amenomade,

danke für die hilfe :)

ja meine iframes liegen auch www/tablet....

habe daher in die .config "Header append X-FRAME-OPTIONS "SAMEORIGIN"" hinzugefügt ohne erfolg :'(

die .config über den Apache über http funktionierte bereits, das Problem habe ich erst seit der Umstellung auf https.

was könnte da noch sein?

RasPi B+,Onkyo_AVR,Luxtronik2,Logo7,Mpd,Arduino Uno mit Ethernet,KNX,Jablotron

mani

Soooo habe nun herausgefunden das die Aufrufe der js an fhem mit https://host:..... erfolgen. Da fhem selbst aber nicht verschlüsselt ist kann die Verbindung vermutlich nicht aufgebaut werden da fhem selbst unter http://host..... erreichbar ist kann ich das umstellen?

Mfg Mani
RasPi B+,Onkyo_AVR,Luxtronik2,Logo7,Mpd,Arduino Uno mit Ethernet,KNX,Jablotron

MadMax-FHEM

Attribut HTTPS bei der entsprechenden FhemWeb-Instanz setzen...

Kurz, da nur Handy grad...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

mani

Danke leider ist mein fhem danach nicht mehr erreichbar :-\
Bin nun darauf gekommen das es an den js liegt die im Browser die nicht freigegeben werden können wenn sie über ein iframe aufgerufen werden.

Hat jemand Lösungsansätze :)


Mfg Mani
RasPi B+,Onkyo_AVR,Luxtronik2,Logo7,Mpd,Arduino Uno mit Ethernet,KNX,Jablotron

amenomade

ZitatNun hab ich aber noch weiter Seiten mit iframe und Swipper eingebunden
Wie? Wo liegen die, sind die per http oder https abgerufen, woraus? Die iframes sind in der Fhem TabletUI integriert? Relativ oder absolute Paths?
Zitatnicht mehr erreichba
Über Apache und https, oder lokal über http? https?

Es wäre interessant, dein Kontrukt ein bisschen mehr zu erklären. Code, Beispiele, ls von den Verzeichnisse, usw.

Dein Apache Proxy wandelt alle https Requests nach /fhem in http Requests zu dem Fhem-Host. Und zurück umgekehrt.
D.h. dein ganzes Ding muss lokal über http erreichbar sein.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

mani

@amenomade,


Die Seiten liegen gleich wie die index.php in /opt/fhem/www/tablet und sind nur mit dem jeweiligen namen z.B.: "src=swipper.php" integriert. Die Weburl ist http:// gesetzt da fhem selbst noch unter http läuft.
Erreichbar ist Tablet ui mit http und https aber die script werden anscheinend vom Browser unter https blockiert habe ich gestern noch bemerkt.
Da ich einen selbst generierten Schlüssel verwende bock mein Browser anscheinend und ich muss die Skripts selbst freigeben aber das kann ich anscheinend nur auf der Hauptseite(index.php) und nicht auf den iframes.
Wenn ich z.B. mit https://ip/xxxx.php direkt auf eine ansonst iframeseite zugreife und die Skipts freigebe läufts...
kann ich das irgendwie umgehen?


RasPi B+,Onkyo_AVR,Luxtronik2,Logo7,Mpd,Arduino Uno mit Ethernet,KNX,Jablotron

amenomade

blabla... ;)

ZitatCode, Beispiele, ls von den Verzeichnisse, usw.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

mani

#amenomade

aber jetzt :)
index php sieht im header so aus, auch die weiteren php sind so aufgebaut



<meta name="fhemweb_url" content="http://ipfhem:8083/fhem/">
<meta name="toast" content="0">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta name="mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="longpoll_type" content="websocket">
<meta name="longpoll" content="1"> <!-- 1=longpoll;0=shortpoll every 30sec -->
<meta name="longpoll_filter" content=".*">
<meta name="longpoll_maxage" content="240">
<meta name="debug" content="1"> <!-- 1=output to console;0=not output -->
<link rel="stylesheet" href="/fhem/tablet/css/fhem-tablet-ui.css" />
<link rel="stylesheet" href="/fhem/tablet/lib/font-awesome.min.css" />
<link rel="stylesheet" href="/fhem/tablet/lib/jquery.toast.min.css" />
<link rel="stylesheet" href="/fhem/tablet/css/background2.css" />
<link rel="icon" type="image/png" href="/fhem/www/tablet/favicon-32.png" sizes="32x32">
<link rel="icon" type="image/png" href="/fhem/www/tablet/favicon-162.png" sizes="162x162">
<link rel="manifest" href="/fhem/tablet/js/manifest.json">
<link rel="stylesheet" href="/fhem/tablet/css/fhem-tablet-ui-wdtimer.css" />
<script src="/fhem/pgm2/jquery.min.js"></script>
<script src="/fhem/tablet/lib/jquery.toast.min.js"></script>
<script src="/fhem/tablet/js/fhem-tablet-ui.min.js"></script>
<!-- Remove this line to enable for usage with WebViewControl
<script type="text/javascript">var wvcDevices = {'123456': 'wvc_Tablet'}; var wvcUserCssFile="/fhem/pgm2/webviewcontrol.css"</script>
<script type="text/javascript" src="/fhem/pgm2/cordova-2.3.0.js"></script>
<script type="text/javascript" src="/fhem/pgm2/webviewcontrol.js"></script>



und die iframes sind z.B. so eingebunden
   
     <div data-type="switch" data-icon="oa-audio_sound" class="big"></div>
          <div class="dialog"><iframe style=" border:solid  1px #6df2d3"width="350px" height="450px" src="player.php" frameborder="0" ></iframe></div>
       


die php Seiten liegen alle in einem Ordner


xx@xxxx:/opt/fhem/www/tablet $ ls
Alarm.html       css     favicon-32.png  images    js    Rolladen.html    Swipper.php   Beleuchtung.php  favicon-162.png  fonts   lib   
Heizung.html    index.php   player.php    video.php      Wecker.html



und die Apache.config sieht so aus

</VirtualHost>


       <VirtualHost *:443>

                ServerAdmin webmaster@localhost
               

                DocumentRoot /opt/fhem/www/tablet

                <Directory /opt/fhem/www/tablet>
                </Directory>

                LogLevel alert rewrite:trace2
                ErrorLog ${APACHE_LOG_DIR}/error.log
                CustomLog ${APACHE_LOG_DIR}/access.log combined

                SSLCertificateFile /etc/apache2/ssl/xxx.crt
                SSLCertificateKeyFile /etc/apache2/ssl/xxx.key

                <Location /fhem>
                ProxyPass  http://127.0.0.1:8083/fhem
                ProxyPassReverse  http://127.0.0.1:8083/fhem

                </Location>

        </VirtualHost>

RasPi B+,Onkyo_AVR,Luxtronik2,Logo7,Mpd,Arduino Uno mit Ethernet,KNX,Jablotron

amenomade

Jetzt verstehe ich.
Ich befürchte, das Problem liegt nicht in Apache.
Meisten Browser verweigern unverschlüsselten Inhalt in einer https Seite, insb. in einem iframe. Daher wäre m.M.n. die beste Lösung, alles auf https zu machen. Fhem selbst https-fähig zu machen ist nicht so kompliziert.

Vielleicht würde auch funktionieren, einen internen HTTPSRV in Fhem zu definieren, der die Tabletui Seiten bedient, und Apache nur als Proxy zu nutzen... aber... nicht getestet.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

mani

nun hab ich fhem umgestellt auf https und nun geht mein Tablet ui nicht mehr....bzw. wird nicht mehr richtig aufgelöst
Fhem Weburl habe ich auf https umgestellt und im Apache habe ich die Einstellungen ebenfalls auf https umgestellt.
Was übersehe ich den nun wieder?

Mfg Mani
RasPi B+,Onkyo_AVR,Luxtronik2,Logo7,Mpd,Arduino Uno mit Ethernet,KNX,Jablotron

amenomade

Was sagen die Apache Logs?
Sieht man was in der Fhem Log?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

mani

im Apachelog steht folgendes:

[Mon Aug 05 12:30:58.769954 2019] [mpm_prefork:notice] [pid 1242] AH00171: Graceful restart requested, doing restart
[Mon Aug 05 12:30:59.153620 2019] [mpm_prefork:notice] [pid 1242] AH00163: Apache/2.4.10 (Raspbian) OpenSSL/1.0.1t mod_perl/2.0.9dev Perl/v5.20.2 configured$
[Mon Aug 05 12:30:59.153716 2019] [core:notice] [pid 1242] AH00094: Command line: '/usr/sbin/apache2'


ein  sudo apache2ctl configtest ergibt "Syntax OK"


im Fhem log finde ich nix...
RasPi B+,Onkyo_AVR,Luxtronik2,Logo7,Mpd,Arduino Uno mit Ethernet,KNX,Jablotron

amenomade

Das ist die Log des Diensts oder?
Ich meinte die Apache Logs error.log und access.log
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus