Hier nun der Thread zu einem Reverse Proxy mit einem Raspi mit der Einrichtung zu mehreren Weiterleitungen.
Meine Frage war folgende:
ZitatIch habe das ebenso eingerichtet bei mir funktioniert aber leider nur eine Weiterleitung.
Ich habe auch auf einem Raspi ein nginx dort auch mit Passwort und User und letsencrypt
meinedomain.de/fhem -> FHEM geht also
aber eine zweite z.B. in der Form "meinedomain.de/webhook -> Geofency" funktioniert nicht.
Ich habe das ganze nach einer Anleitung aus dem Internet eingerichtet, weil ich auch nicht der Freak bin was Revrse Proxy betrifft.
Das war alles für mich Neuland...
Läuft das bei auch auf Port 443..?
Ich suche jetzt erst einmal die NGINX-Config da ich da nicht so oft dran bin arbeite ich mich erst mal durch ;)
Wahrscheinlich unter:
/etc/nginx/sites-enabled
Prüfe bitte auch folgendes (sollte bei Dir leer sein)
/etc/nginx/conf.d
Ich sage erst einmal Danke, denn ich muss los. Werde später alles hier rein stellen...! ;)
Doch schnell noch hier die config
server {
listen 80;
listen [::]:80;
server_name www.fhem.XXXXXXX.de;
include /etc/nginx/snippets/letsencrypt.conf;
# Redirect any HTTP request to HTTPS
location / {
return 301 https://www.fhem.XXXXXXXXXXXXXXXXXXXXXX.de;}
error_log /var/log/nginx/XXXXXXXXXXXXXXXXXXXXXX.de-error.log;
access_log /var/log/nginx/XXXXXXXXXXXXXXXXXXXXXX.de-access.log;
}
/etc/nginx/conf.d
Das ist ja bei mir ein Verzeichnis und in diesem ist die folgende Datei drin "fhem.XXXXXXXXXXXXXXXXXXXXXX.de.conf"
Brauchst du die auch oder darf die da evtl. gar nicht sein..?
1. Anonymisiere bitte ....
2. Warum machst DU einen 301? Das ist kein Proxy, sondern ein redirekt ....
......
3. Dein Server ist so im Netz erreichbar ....
1. gemacht Danke, habe ich vergessen ;)
2. gute Frage ich habe es seinerzeit einfach nachgebaut..
3. ja ich komme per HTTPS://xxxxxxxxxxxxxxx.de
drauf mit User und Passwort
Ich brauchte kein User/Passwort ..... jedenfalls nicht für die erste Seite ...
Eigentich steht in der nginx-config so etwas:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name default_server;
root /usr/share/nginx/html;
index index.html index.htm;
access_log /var/log/nginx/default.access.log;
error_log /var/log/nginx/default.error.log;
# Sicherheit
server_tokens off;
add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains' always;
# Für LetsEncrypt
location ~ /\.well-known {
root /usr/share/nginx/html;
}
# Alles andere auf https://
location / {
try_files $uri $uri/ =404;
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name MeinTollerServerName;
ssl_certificate_key /etc/letsencrypt/live/MeinTollerServerName/privkey.pem;
ssl_certificate /etc/letsencrypt/live/MeinTollerServerName/fullchain.pem;
root /usr/share/nginx/html;
index index.html index.htm;
access_log /var/log/nginx/MeinTollerServerName.access.log;
error_log /var/log/nginx/MeinTollerServerName.error.log;
# Sicherheit
server_tokens off;
add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains' always;
# Normalerweise alles nur nach Login
location / {
auth_basic "Restricted Content";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass https://InternerWebServer:443;
client_max_body_size 128M;
}
# Normalerweise alles nur nach Login / Fhem direkt
location /fhem {
auth_basic "Restricted Content";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
# if ($http_upgrade = "websocket") {
# set $my_http_upgrade $http_upgrade;
# set $my_connection "upgrade";
# }
# proxy_set_header Upgrade $my_http_upgrade;
# proxy_set_header Connection $my_connection;
proxy_pass http://MeinTollerFhemServer:8083;
proxy_read_timeout 90;
proxy_buffering off;
client_max_body_size 128M;
}
}
Config sollte so adaptierbar (und verbesserbar) sein ...
OK ich habe die erst einmal gespeichert. Werde sie dann anpassen
Aber zum Verständnis muss ich nochmal ein paar Fragen stellen.
1. Eine nginx-conf gibt es bei mir nicht, ist evtl. die ngix.conf unter /etc/nginx gemeint, aber die sieht eben ganz anders aus..! damit ist diese wohl nicht gemeint..!
2. /etc/nginx/conf.d/ ist ein Verzeichnis richtig..?
da ist eine Datei drin die heißt fhem.xxxxxxxxxxxxx.de.conf mit folgendem Inhalt
server {
server_tokens off;
## Blocken, wenn Zugriff aus einem nicht erlaubten Land erfolgt ##
if ($allowed_country = no) {
return 403;
}
# https://www.cyberciti.biz/tips/linux-unix-bsd-nginx-webserver-security.html
## Block download agents ##
if ($http_user_agent ~* LWP::Simple|BBBike|wget) {
return 403;
}
## Block some robots ##
if ($http_user_agent ~* msnbot|scrapbot) {
return 403;
}
## Deny certain Referers ##
if ( $http_referer ~* (babes|forsale|girl|jewelry|love|nudit|organic|poker|porn|sex|teen) )
{
return 403;
}
listen 443 ssl default_server;
server_name xxxxx.xxxxxxxxxxxxxx.de;
##
# SSL
##
## Activate SSL, setze SERVER Zertifikat Informationen ##
# Generiert via Let's Encrypt!
ssl on;
ssl_certificate /etc/letsencrypt/live/fhem.xxxxxxxxxxxxxx.de/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/fhem.xxxxxxxxxxxxxx.de/privkey.pem;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_prefer_server_ciphers on;
# unsichere SSL Ciphers deaktivieren!
ssl_ciphers HIGH:!aNULL:!eNULL:!LOW:!3DES:!MD5:!RC4;
##
# HSTS
##
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
##
# global
##
root /var/www/fhem.xxxxxxxxxxxxxx.de;
index index.php index.htm index.html;
# Weiterleitung zu SmartHomeNG (Websocket Schnittstelle) mit Basic Auth
location / {
auth_basic "Restricted Area: fhem";
auth_basic_user_file /etc/nginx/.fhem;
# Zugreifendes Land erlaubt?
if ($allowed_country = no) {
return 403;
}
# Nur Websocket Verbindungen gegen "/" durchlassen!
if ($http_upgrade = websocket) {
proxy_pass http://meineIP:8083;
}
if ($http_upgrade != websocket) {
return 403;
}
}
# Zugriff auf die Fhem mit Basic Auth
location /fhem {
auth_basic "Restricted Area: FHEM";
auth_basic_user_file /etc/nginx/.fhem;
# Zugreifendes Land erlaubt?
if ($allowed_country = no) {
return 403;
}
proxy_pass http://meineIP:8083;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# # Zugriff auf die Fhem mit Basic Auth
# location /webhook {
# auth_basic "Restricted Area: WEBHOOK";
# auth_basic_user_file /etc/nginx/.webhook;
# # Zugreifendes Land erlaubt?
# if ($allowed_country = no) {
# return 403;
# }
# proxy_pass http://meineIP:8087;
# proxy_set_header Host $host;
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# proxy_set_header X-Forwarded-Proto $scheme;
# }
location /webhook/ {
proxy_pass http://meineIP:8087; # RPI-Monitor auf rasp-reverseproxy #funktioniert
proxy_set_header Host $host;
auth_basic "Passwortgeschützter Bereich";
auth_basic_user_file "/etc/nginx/.webhook";
access_log /var/log/nginx/ips.access.log;
error_log /var/log/nginx/ips.error.log;
}
}
auch diese sieht etwas anders aus...!!
3. unter /etc/nginx/sites-enabled/ - gibt es eine default Datei ohne Endung wenn ich da drauf klicke lande ich im Ordner /etc/nginx/sites-available/ da ist meine Datei von weiter oben fhem.xxxxxxxxx-hausautomation auch ohne Endung, deren Inhalt habe ich oben gepostet.
Ich weiß es sind viel Fragen aber ich hatte doch einige Probleme, evtl. ist da irgendwo etwas zuviel drin.
Jetzt muss ich erst einmal wissen was ich alles genau wohin bringe damit ich mir das Teil nicht zerschieße ;)
letsencrypt läuft noch ca. 2,5 Monate
Evtl. kann da einiges von raus..? und dann beginne ich mit putty die Dateien wieder anzupassen.
Ich kann mir ja alles sichern und wenn es nicht funktioniert wieder zurück spielen.
Also Kurzform für mich.
a. welche Dateien brauche ich..?
b. wohin müssen die..?
Vielen Dank :)
Die /etc/nginx/nginx.conf ist die globale Konfigurationsdatei. Dort stehen nur Sachen drin welche alle vhosts betreffen.
Unter /etc/nginx/site-available befinden sich die Konfigurationen der vhosts drin. pro vhost ein Konfigfile.
Scharf schalten tut man das ganze in dem man ein softlink setzt von /etc/nginx/site-available/vhost.conf nach /etc/nginx/site-enable/vhost.conf
OK also ist die vhost.conf die ich brauche und so heißen muss wie meine vhost Datei
z.B.
fhem.muster1-hausautomation.conf
fhem.muster2-hausautomation.conf
fhem.muster3-hausautomation.conf
Meine Datei hat aber keine Endung und das ist richtig..?
Du hast in der nginx.conf folgende Zeilen
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
Bei mir steht in der conf.d gar nichts drin. Alles entscheidende steht unter sites-enabled
(14:32 root@pi-proxy01 sites-enabled) > ls
fhem02-reverseproxy fhem-reverseproxy fhemwebhook-reverseproxy tuxnetwiki-reverseproxy
fhemmobile-reverseproxy fhemwebhook2-reverseproxy squidguard wpad
OK in der nginx.conf weiter unten steht dann das drin was du gepostet hast kann ich dann wohl alles so lassen...
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 768;
# multi_accept on;
}
http {
##
# GeoIP Settings
# Nur Länder aus erlaubten IP Bereichen dürfen den ReverseProxy
# passieren!
# https://www.howtoforge.de/anleitung/nginx-besucher-mit-dem-geoip-modul-nach-landern-blocken-debianubuntu/
##
geoip_country /usr/share/GeoIP/GeoIP.dat;
map $geoip_country_code $allowed_country {
default yes;
BY no;
BR no;
KP no;
KR no;
RS no;
RO no;
RU no;
CN no;
CD no;
NE no;
GH no;
IQ no;
IR no;
SY no;
UA no;
}
##
# Basic Settings
##
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# server_tokens off;
# server_names_hash_bucket_size 64;
# server_name_in_redirect off;
include /etc/nginx/mime.types;
default_type application/octet-stream;
##
# SSL Settings
##
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
##
# Logging Settings
##
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
##
# Gzip Settings
##
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/javascript text/xml application/xml application/xml+rss text/javascript;
##
# Virtual Host Configs
##
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
##
# Harden nginx against DDOS
##
client_header_timeout 10;
client_body_timeout 10;
}
#mail {
# # See sample authentication script at:
# # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
#
# # auth_http localhost/auth.php;
# # pop3_capabilities "TOP" "USER";
# # imap_capabilities "IMAP4rev1" "UIDPLUS";
#
# server {
# listen localhost:110;
# protocol pop3;
# proxy on;
# }
#
# server {
# listen localhost:143;
# protocol imap;
# proxy on;
# }
#}
EDIT:// so nun habe ich es doch hinbekommen, habe jetzt die Passwort Datei angelegt und nun komme ich wieder mit dem User und dem Passwort drauf.
Ich weiß nicht ob das so richtig ist..?
Ich muss jetzt aber den gesamten Pfad eingeben https://fhem.xxxxxx-hausautomation.de/fhem
Ist das richtig so, weil @werniemann hatte geschrieben auf der ersten Seite braucht er kein Passwort, wahrscheinlich dann nur bei der Weiterleitung..!?
Keine Ahnung, dass weiß ich jetzt nicht, bitte nochmal über meine config schauen. Brauch da noch etwas Unterstützung :-\
jetzt komme ich gar nicht mehr drauf..! :-\
Es gibt jetzt unter /etc/nginx/sites-available/ die Datei fhem.xxxxxx-hausautomationund unter /etc/nginx/sites-enabled/ den link angelegt mit
ln -s /etc/nginx/sites-available/fhem.xxxxxx-hausautomation /etc/nginx/sites-enabled/fhem.xxxxxx-hausautomation
bekomme ein "403 Forbidden" den nginx vorher gestoppt und wieder gestartet
die Datei fhem.xxxxxx-hausautomation
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name default_server;
root /usr/share/nginx/html;
index index.html index.htm;
access_log /var/log/nginx/default.access.log;
error_log /var/log/nginx/default.error.log;
# Sicherheit
server_tokens off;
add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains' always;
# Für LetsEncrypt
location ~ /\.well-known {
root /usr/share/nginx/html;
}
# Alles andere auf https://
location / {
try_files $uri $uri/ =404;
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name fhem.xxxxxx-hausautomation.de;
ssl_certificate_key /etc/letsencrypt/live/fhem.xxxxxx-hausautomation.de/privkey.pem;
ssl_certificate /etc/letsencrypt/live/fhem.xxxxxx-hausautomation.de/fullchain.pem;
root /usr/share/nginx/html;
index index.html index.htm;
access_log /var/log/nginx/fhem.xxxxxx-hausautomation.de.access.log;
error_log /var/log/nginx/fhem.xxxxxx-hausautomation.de.error.log;
# Sicherheit
server_tokens off;
add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains' always;
# Normalerweise alles nur nach Login
location / {
auth_basic "Restricted Content";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass https://fhem.xxxxxx-hausautomation.de:443;
client_max_body_size 128M;
}
# Normalerweise alles nur nach Login / Fhem direkt
location /fhem {
auth_basic "Restricted Content";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
# if ($http_upgrade = "websocket") {
# set $my_http_upgrade $http_upgrade;
# set $my_connection "upgrade";
# }
# proxy_set_header Upgrade $my_http_upgrade;
# proxy_set_header Connection $my_connection;
proxy_pass http://fhemServer:8083;
proxy_read_timeout 90;
proxy_buffering off;
client_max_body_size 128M;
}
}
EDIT://
ich habe jetzt in der Logdatei gesehen das er mir folgenden Fehler zeigt, sicher weil ich jetzt die Config geändert habe...!Zitat2018/05/24 16:42:04 [error] 751#751: *4 open() "/etc/nginx/.htpasswd" failed (2: No such file or directory), client: 89.183.115.182, server: fhem.xxxxxx-hausautomation.de, request: "GET / HTTP/2.0", host: "fhem.xxxxxx-hausautomation.de"
Ich habe bei mir ALLES mit User/Passwort eingetragen. Aud em Web (Öffentlich) soll schließlich keiner Zugreifen können.
Wenn Du dieses nicht willst, nimm es bei "location /" raus und lasse es nur bei "location /fhem" drin.
Habe ich jetzt nicht richtig verstanden...! :-\
Du hattest geschrieben
ZitatIch brauchte kein User/Passwort ..... jedenfalls nicht für die erste Seite ...
Ich möchte beim zugreifen mich mit User und Passwort in mein fhem einloggen, aber was ist bei dir die 1.Seite..?
So wie es bei mir jetzt ist muss ich eben den gesamten Pfad eingeben diesen mit "fhem" dahinter
https://fhem.xxxxxx-hausautomation.de/fhem
somit bin ich ja auf dem Weboberfläche wie eingetragen xxxxx.8083
Ist das bei dir auch der Fall oder muss ich da noch was verändern...? Deshalb oben die Frage der ersten Seite.
Wenn ich eingebe
https://fhem.xxxxxxx-hausautomation.de/
kommt die Fehlerseite 502 Bad Gateway
Mir geht es auch darum das ich später weitere Pfade hinzufügen kann und das ist mir eben noch nicht gelungen, gut aber das später.
Ich muss erst einmal die jetzige Konstellation verstehen... :-\
Schau Dir mal folgendes an ... hast Du es angepasst?
location / {
auth_basic "Restricted Content";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass https://fhem.xxxxxx-hausautomation.de:443;
client_max_body_size 128M;
}
Mal eine Kleine Einführung:
"location /" Für den Pfad / gilt folgendes ..
"location /fhem" Für den Pfad /fhem gilt folgendes ..
Wenn Du also für / was haben willst, mußt DU entweder:
eine Website Hinterlegen (und root /.../ devinieren) oder eine Umleitung definieren, ala
return 301 https://......;
Zitat von: Wernieman am 25 Mai 2018, 08:05:46
Schau Dir mal folgendes an ... hast Du es angepasst?
sorry wenn ich mich da grad etwas blöd :-\ anstelle, aber mir ist da einiges noch nicht so klar. :o
wenn ich das richtig verstanden habe sollte ich mich doch ohne /fhem in der url einloggen können, dass habe ich jetzt mal getestet...
ich gebe https://fhem.xxxxxxx-hausautomation.de und es kommt die Abfrage nach User und Passwort, dass gebe ich ein und es kommt eine Fehlerseite "502 Bad Gateway"
Das ist denke ich OK, da ich ja nur einen User/Passwort für fhem habe
ich habe diesen Bereich so drin...! hier der Teil aus der config
# Normalerweise alles nur nach Login
location / {
auth_basic "Restricted Content";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass https://fhem.xxxxxx-hausautomation.de:443;
client_max_body_size 128M;
}
# Normalerweise alles nur nach Login / Fhem direkt
location /fhem {
auth_basic "Restricted Content";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
# if ($http_upgrade = "websocket") {
# set $my_http_upgrade $http_upgrade;
# set $my_connection "upgrade";
# }
# proxy_set_header Upgrade $my_http_upgrade;
# proxy_set_header Connection $my_connection;
proxy_pass http://10.0.0.50:8083;
proxy_read_timeout 90;
proxy_buffering off;
client_max_body_size 128M;
}
au man ich habe soviel verschiedene Anleitungen aus dem Internet angeschaut und jeder macht es anders... :-\
Aber wir beide müssen das jetzt hier mal zu Ende kauen damit ich das endlich mal hinbekomme speziell dann für mehrere "location /", ich Danke vielmals vorab ;)
1. Diese User/Passworte sind NICHT die FHEM User/Passworte!
auth_basic "Restricted Content";
auth_basic_user_file /etc/nginx/.htpasswd;
Wenn Du für FHEM Dich auf Fhem User/Passwort verlassen willst, müsstest Du dieses bei "Location FHEM" rausnhemne.
Meine Empfehlung: Lasse es Drin! Es sei denn, der Proxy ist extern nicht erreichbar (was ich aber bei Dir anders verstanden habe).
Bin nur dieses Wochenende "ausgelastet", da were ich Dir schlecht helfen können. Wie sieht es nächste Woche bei Dir aus?
Zitat von: Wernieman am 25 Mai 2018, 17:16:15
1. Diese User/Passworte sind NICHT die FHEM User/Passworte!
auth_basic "Restricted Content";
auth_basic_user_file /etc/nginx/.htpasswd;
Achso, na dann kann es nicht gehen...! ;)
Das ist dann wohl der Zugriff auf den Raspi für root, oder.?
Zitat von: Wernieman am 25 Mai 2018, 17:16:15
Wenn Du für FHEM Dich auf Fhem User/Passwort verlassen willst, müsstest Du dieses bei "Location FHEM" rausnhemne.
Meine Empfehlung: Lasse es Drin! Es sei denn, der Proxy ist extern nicht erreichbar (was ich aber bei Dir anders verstanden habe).
Ja, klar lasse ich die drin..!
Der Zugriff auf fhem mit Passwort und User klappt ja bestens
Soll denn nur eben später noch weiter gehen mit z.B. unter fhem Webhook, damit ich da mit Geofency eine Meldung bekomme bei Abwesenheit...!
Zitat von: Wernieman am 25 Mai 2018, 17:16:15
Bin nur dieses Wochenende "ausgelastet", da were ich Dir schlecht helfen können. Wie sieht es nächste Woche bei Dir aus?
kein Problem, lass dir Zeit das machen wir ganz in Ruhe... Schreib gerne immer wann es geht und ich mache das auch so.
Nächste Woche, sehr gern.. :)
am liebsten tagsüber .. abends und am Wochenende ist bei mir immer sehr schlecht ...
Wenn Du beim Reverse Proxy das basic auth gleich setzt wie beim fhem server musst dich nur einmal anmelden, nämlich beim reverse proxy. der rest wird dann durchgeleitet.
das sieht dann wie aus ;)
ich möchte mir da nix kaputt machen wenn ich mit meinem Unwissen herum fummel ;)
Einfach so lassen was Basic auth an geht. Nur den selben Usernamen und Passwort wählen
Im übrigen ist dein proxy_pass Unsinn es sei denn fhem läuft direkt auf dem fhem Server wirklich auf 443
Ansonsten 8083
Zitat von: CoolTux am 25 Mai 2018, 20:12:16
Im übrigen ist dein proxy_pass Unsinn es sei denn fhem läuft direkt auf dem fhem Server wirklich auf 443
Ansonsten 8083
Oh je ich bin immer mehr verwirrt :-\
Nein der fhem Server läuft auf einem Intel-NUC und natürlich auf 8083 und der Reverse-Proxy auf einem RasPi mit anderer IP.
Die DNS Adresse ist bei meinem Internet Provider und in der Fritzbox eingetragen und dort auf 443.
Vorschlag. Das Du erstmal ein kleines Erfolgserlebnis hast
server {
listen 443 http2;
listen [::]:443 http2;
server_name fhem.xxxxxx-hausautomation.de;
# Add headers to serve security related headers
# Before enabling Strict-Transport-Security headers please read into this
# topic first.
add_header Strict-Transport-Security "max-age=15768000";
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
ssl_certificate /etc/nginx/certs/fhemCert.pm;
ssl_certificate_key /etc/nginx/certs/fhemKey.pm;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_session_timeout 10m;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
ssl_ecdh_curve secp384r1;
ssl_stapling on;
ssl_stapling_verify on;
ssl_protocols TLSv1.2;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/fhem-reverseproxy/access.log;
error_log /var/log/nginx/fhem-reverseproxy/error.log;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_pass http://10.0.0.50:8083;
#proxy_read_timeout 90;
proxy_read_timeout 86400;
proxy_buffering off;
auth_basic "Restricted Content";
auth_basic_user_file /etc/nginx/.htpasswd;
}
}
Die Datei heißt bei mir fhem-reverseproxy und liegt einfach unter /etc/nginx/sites-available mit link nach sites-enable
Bitte die SSL Zertifikate anpassen
Zitat von: CoolTux am 25 Mai 2018, 22:50:10
Vorschlag. Das Du erstmal ein kleines Erfolgserlebnis hast
Die Datei heißt bei mir fhem-reverseproxy und liegt einfach unter /etc/nginx/sites-available mit link nach sites-enable
Bitte die SSL Zertifikate anpassen
Ok Danke und in der Tat habe ich das Erfolgserlebnis ;) :) ;)
angepaßt - ssl_certificate
angepaßt - ssl_certificate_key
und die
access_log
error_log
Jetzt komme ich mit der direkten Adresse ohne fhem auch drauf ;)
Da ich ja schon einige Zeit mit meinem Webhook -> Geofancy herum probiere, kann ich das ebenfalls hierüber machen weil in fhem bin ich ja schon.?
Kurze Info dazu ich hatte vor längere Zeit ganz normal über ein DNS Dienst die Anwesenheitserkennung und da hat das alles funktioniert.
Seit ich das hier über https://fhem.xxxxxx-hausautomation.de machen funktioniert das nicht mehr.
Zitat von: moonsorrox am 26 Mai 2018, 00:55:07
Ok Danke und in der Tat habe ich das Erfolgserlebnis ;) :) ;)
angepaßt - ssl_certificate
angepaßt - ssl_certificate_key
und die
access_log
error_log
Jetzt komme ich mit der direkten Adresse ohne fhem auch drauf ;)
Da ich ja schon einige Zeit mit meinem Webhook -> Geofancy herum probiere, kann ich das ebenfalls hierüber machen weil in fhem bin ich ja schon.?
Kurze Info dazu ich hatte vor längere Zeit ganz normal über ein DNS Dienst die Anwesenheitserkennung und da hat das alles funktioniert.
Seit ich das hier über https://fhem.xxxxxx-hausautomation.de machen funktioniert das nicht mehr.
für webhook nehme ich eine andere url. Somit wäre dann wieder eine andere Konfigdatei.
Was spricht gegen
https://fhemwebhook.xxxxxx-hausautomation.de
Das wäre so auch OK, aber ich dachte da ich ja schon bei fhem drin bin kann ich das gleich drunter schreiben so in der Art..
location /geo {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_pass http://10.0.0.50:8087;
#proxy_read_timeout 90;
proxy_read_timeout 86400;
proxy_buffering off;
auth_basic "Restricted Content";
auth_basic_user_file /etc/nginx/.htpasswd;
}
Sollte auch gehen meines Wissens. Probier es mal aus.
Kann ich das auch so schreiben oder nimmt der das dann nicht
location /webhook/geo
Diese Eintragung war eben früher in Geofency http://meinDNS/webhook/geo
Da wurde mir dann (ich weiß nicht mehr wo, steht glaube ich auch im Wiki) empfohlen ich solle auf ein Reverse-Proxy wechseln damit kann man das ganz easy machen, dann habe ich auf https://xxxxxx gewechselt...
Damit nahm der Irrsinn (Reverse-Proxy) seinen Lauf ;) :D ;)
Das ist mein Problem das geht in der App auf dem Handy nicht..! und da hat er auf dem Handy immer gemeckert, da sagt er immer fehlgeschlagen...
OK das können wir auch an einem anderen Tag machen... Vielen Dank erst einmal :)