Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Visualisierung
  4. Kamera mit Basic-Auth über nginx

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    16
    1
    279

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    4.7k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.3k

Kamera mit Basic-Auth über nginx

Geplant Angeheftet Gesperrt Verschoben Visualisierung
4 Beiträge 3 Kommentatoren 419 Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • A Offline
    A Offline
    alka
    schrieb am zuletzt editiert von
    #1

    leider lassen sich Kameras mit Auth nicht im Vis anzeigen

    im Netz habe ich Anleitungen gefunden, nach denen es funktionieren würde nginx als Server die Kamera weiterleiten zu lassen, um sie ohne Authentifizierung im VIS anzeigen zu können

    leider bekomme ich es nicht hin, bei Aufruf der Kamera wird in Browsern und im vis weiterhin Benutzer/Passwort verlangt (auch auf dem Ubuntu auf dem nginx läuft)

    habe Auth mit
    echo -n „admin:passwort“ | base64
    erstellt

    und dann die /etc/nginx/nginx.conf angepasst (muss die evtl nach /etc/nginx/conf.d/ ?)


    #user nobody;
    worker_processes 1;

    #error_log logs/error.log;
    #error_log logs/error.log notice;
    #error_log logs/error.log info;

    #pid logs/nginx.pid;

    events {
    worker_connections 1024;
    }

    http {
    include mime.types;
    default_type application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';
    
    #access_log  logs/access.log  main;
    
    sendfile        on;
    #tcp_nopush     on;
    
    #keepalive_timeout  0;
    keepalive_timeout  65;
    
    #gzip  on;
    
    server {
        listen       80;
        server_name  localhost;
    
        #charset koi8-r;
    
        #access_log  logs/host.access.log  main;
    
        location / {
            root   html;
            index  index.html index.htm;
        }
    
    
        #error_page  404              /404.html;
    
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    
        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}
    
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}
    
        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }
    
    
    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;
    
    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}
    

    #echo -n „admin:passwort“ | base64
    #sudo service nginx reload
    #sudo service nginx restart

    server {
    listen 81;
    #listen [::]:81;

    zugriff auf den proxy auf berechtigte systeme eingrenzen (reihenfolge beachten!)

    wichtig, da ueber diesen weg sonst alle systeme ohne authentifizierung auf die kamera kommen

    allow all;
    #allow <ip-adresse-1>;
    #allow <ip-adresse-2>;

    am ende alle weiteren systeme verbieten

    #deny all;

    #root /var/www/html;
    #index index.html index.htm index.nginx-debian.html;
    #server_name example.g.local;

    location /hofcam/ {
    proxy_pass http://192.178.68.43:8015/image/jpeg.cgi;
    proxy_redirect off;
    proxy_set_header Host $host:$server_port;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

      # credentials fuer die authentifizierung an der kamera
      proxy_set_header Authorization "Basic 4oCeYWRtaW46cFRLV04wWjQ0MuKAnA==";
      proxy_pass_header Authorization;
    
      # dem aufrufenden browser erlauben, den stream in die website einzubinden, um die Meldung
      # "Blockiert durch X-Frame-Options-Richtlinie" zu vermeiden. 
      add_header Content-Security-Policy "img-src 'http://192.168.78.108:81/';";
    

    }
    # falls gewuenscht koennen hier logfiles eingerichtet werden. dazu das # vor der zeile entfernen
    # access_log /var/log/nginx/access.log;
    # error_log /var/log/nginx/error.log;
    }

    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;
    
    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;
    
    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;
    
    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;
    
    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}
    

    }

    kann mal bitte jemand mit Zaunpfahl winken?

    BananaJoeB T 2 Antworten Letzte Antwort
    0
    • A alka

      leider lassen sich Kameras mit Auth nicht im Vis anzeigen

      im Netz habe ich Anleitungen gefunden, nach denen es funktionieren würde nginx als Server die Kamera weiterleiten zu lassen, um sie ohne Authentifizierung im VIS anzeigen zu können

      leider bekomme ich es nicht hin, bei Aufruf der Kamera wird in Browsern und im vis weiterhin Benutzer/Passwort verlangt (auch auf dem Ubuntu auf dem nginx läuft)

      habe Auth mit
      echo -n „admin:passwort“ | base64
      erstellt

      und dann die /etc/nginx/nginx.conf angepasst (muss die evtl nach /etc/nginx/conf.d/ ?)


      #user nobody;
      worker_processes 1;

      #error_log logs/error.log;
      #error_log logs/error.log notice;
      #error_log logs/error.log info;

      #pid logs/nginx.pid;

      events {
      worker_connections 1024;
      }

      http {
      include mime.types;
      default_type application/octet-stream;

      #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
      #                  '$status $body_bytes_sent "$http_referer" '
      #                  '"$http_user_agent" "$http_x_forwarded_for"';
      
      #access_log  logs/access.log  main;
      
      sendfile        on;
      #tcp_nopush     on;
      
      #keepalive_timeout  0;
      keepalive_timeout  65;
      
      #gzip  on;
      
      server {
          listen       80;
          server_name  localhost;
      
          #charset koi8-r;
      
          #access_log  logs/host.access.log  main;
      
          location / {
              root   html;
              index  index.html index.htm;
          }
      
      
          #error_page  404              /404.html;
      
          # redirect server error pages to the static page /50x.html
          #
          error_page   500 502 503 504  /50x.html;
          location = /50x.html {
              root   html;
          }
      
          # proxy the PHP scripts to Apache listening on 127.0.0.1:80
          #
          #location ~ \.php$ {
          #    proxy_pass   http://127.0.0.1;
          #}
      
          # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
          #
          #location ~ \.php$ {
          #    root           html;
          #    fastcgi_pass   127.0.0.1:9000;
          #    fastcgi_index  index.php;
          #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
          #    include        fastcgi_params;
          #}
      
          # deny access to .htaccess files, if Apache's document root
          # concurs with nginx's one
          #
          #location ~ /\.ht {
          #    deny  all;
          #}
      }
      
      
      # another virtual host using mix of IP-, name-, and port-based configuration
      #
      #server {
      #    listen       8000;
      #    listen       somename:8080;
      #    server_name  somename  alias  another.alias;
      
      #    location / {
      #        root   html;
      #        index  index.html index.htm;
      #    }
      #}
      

      #echo -n „admin:passwort“ | base64
      #sudo service nginx reload
      #sudo service nginx restart

      server {
      listen 81;
      #listen [::]:81;

      zugriff auf den proxy auf berechtigte systeme eingrenzen (reihenfolge beachten!)

      wichtig, da ueber diesen weg sonst alle systeme ohne authentifizierung auf die kamera kommen

      allow all;
      #allow <ip-adresse-1>;
      #allow <ip-adresse-2>;

      am ende alle weiteren systeme verbieten

      #deny all;

      #root /var/www/html;
      #index index.html index.htm index.nginx-debian.html;
      #server_name example.g.local;

      location /hofcam/ {
      proxy_pass http://192.178.68.43:8015/image/jpeg.cgi;
      proxy_redirect off;
      proxy_set_header Host $host:$server_port;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        # credentials fuer die authentifizierung an der kamera
        proxy_set_header Authorization "Basic 4oCeYWRtaW46cFRLV04wWjQ0MuKAnA==";
        proxy_pass_header Authorization;
      
        # dem aufrufenden browser erlauben, den stream in die website einzubinden, um die Meldung
        # "Blockiert durch X-Frame-Options-Richtlinie" zu vermeiden. 
        add_header Content-Security-Policy "img-src 'http://192.168.78.108:81/';";
      

      }
      # falls gewuenscht koennen hier logfiles eingerichtet werden. dazu das # vor der zeile entfernen
      # access_log /var/log/nginx/access.log;
      # error_log /var/log/nginx/error.log;
      }

      # HTTPS server
      #
      #server {
      #    listen       443 ssl;
      #    server_name  localhost;
      
      #    ssl_certificate      cert.pem;
      #    ssl_certificate_key  cert.key;
      
      #    ssl_session_cache    shared:SSL:1m;
      #    ssl_session_timeout  5m;
      
      #    ssl_ciphers  HIGH:!aNULL:!MD5;
      #    ssl_prefer_server_ciphers  on;
      
      #    location / {
      #        root   html;
      #        index  index.html index.htm;
      #    }
      #}
      

      }

      kann mal bitte jemand mit Zaunpfahl winken?

      BananaJoeB Online
      BananaJoeB Online
      BananaJoe
      Most Active
      schrieb am zuletzt editiert von BananaJoe
      #2

      @alka was für eine Kamera ist es denn? Hersteller, Modell?

      http://benutzer:passwort@ipadresse/restlicheurl geht nicht?
      Bei Basic-Auth müsste eigentlich auch nichts Base64 codiert werden

      ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 10 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV APC 750W kaskadiert || Creality CR-10 SE 3D-Drucker

      A 1 Antwort Letzte Antwort
      0
      • BananaJoeB BananaJoe

        @alka was für eine Kamera ist es denn? Hersteller, Modell?

        http://benutzer:passwort@ipadresse/restlicheurl geht nicht?
        Bei Basic-Auth müsste eigentlich auch nichts Base64 codiert werden

        A Offline
        A Offline
        alka
        schrieb am zuletzt editiert von
        #3

        @bananajoe sagte in Kamera mit Basic-Auth über nginx:

        http://benutzer:passwort@ipadresse/restlicheurl geht nicht?

        das geht im VIS-Widget (zumindest im Browser) schon lange nicht mehr, gibt auch einige Beiträge hier dazu
        hatte es bisher mit einer Streamingsoftware gelöst, die ist aber veraltet und 'frisst' enorm Kapazität am Rechner

        woanders funktioniert es auch bei mir natürlich wie gehabt, dies direkt der URL mitzugeben, es liegt also nicht an diesem Punkt

        1 Antwort Letzte Antwort
        0
        • A alka

          leider lassen sich Kameras mit Auth nicht im Vis anzeigen

          im Netz habe ich Anleitungen gefunden, nach denen es funktionieren würde nginx als Server die Kamera weiterleiten zu lassen, um sie ohne Authentifizierung im VIS anzeigen zu können

          leider bekomme ich es nicht hin, bei Aufruf der Kamera wird in Browsern und im vis weiterhin Benutzer/Passwort verlangt (auch auf dem Ubuntu auf dem nginx läuft)

          habe Auth mit
          echo -n „admin:passwort“ | base64
          erstellt

          und dann die /etc/nginx/nginx.conf angepasst (muss die evtl nach /etc/nginx/conf.d/ ?)


          #user nobody;
          worker_processes 1;

          #error_log logs/error.log;
          #error_log logs/error.log notice;
          #error_log logs/error.log info;

          #pid logs/nginx.pid;

          events {
          worker_connections 1024;
          }

          http {
          include mime.types;
          default_type application/octet-stream;

          #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
          #                  '$status $body_bytes_sent "$http_referer" '
          #                  '"$http_user_agent" "$http_x_forwarded_for"';
          
          #access_log  logs/access.log  main;
          
          sendfile        on;
          #tcp_nopush     on;
          
          #keepalive_timeout  0;
          keepalive_timeout  65;
          
          #gzip  on;
          
          server {
              listen       80;
              server_name  localhost;
          
              #charset koi8-r;
          
              #access_log  logs/host.access.log  main;
          
              location / {
                  root   html;
                  index  index.html index.htm;
              }
          
          
              #error_page  404              /404.html;
          
              # redirect server error pages to the static page /50x.html
              #
              error_page   500 502 503 504  /50x.html;
              location = /50x.html {
                  root   html;
              }
          
              # proxy the PHP scripts to Apache listening on 127.0.0.1:80
              #
              #location ~ \.php$ {
              #    proxy_pass   http://127.0.0.1;
              #}
          
              # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
              #
              #location ~ \.php$ {
              #    root           html;
              #    fastcgi_pass   127.0.0.1:9000;
              #    fastcgi_index  index.php;
              #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
              #    include        fastcgi_params;
              #}
          
              # deny access to .htaccess files, if Apache's document root
              # concurs with nginx's one
              #
              #location ~ /\.ht {
              #    deny  all;
              #}
          }
          
          
          # another virtual host using mix of IP-, name-, and port-based configuration
          #
          #server {
          #    listen       8000;
          #    listen       somename:8080;
          #    server_name  somename  alias  another.alias;
          
          #    location / {
          #        root   html;
          #        index  index.html index.htm;
          #    }
          #}
          

          #echo -n „admin:passwort“ | base64
          #sudo service nginx reload
          #sudo service nginx restart

          server {
          listen 81;
          #listen [::]:81;

          zugriff auf den proxy auf berechtigte systeme eingrenzen (reihenfolge beachten!)

          wichtig, da ueber diesen weg sonst alle systeme ohne authentifizierung auf die kamera kommen

          allow all;
          #allow <ip-adresse-1>;
          #allow <ip-adresse-2>;

          am ende alle weiteren systeme verbieten

          #deny all;

          #root /var/www/html;
          #index index.html index.htm index.nginx-debian.html;
          #server_name example.g.local;

          location /hofcam/ {
          proxy_pass http://192.178.68.43:8015/image/jpeg.cgi;
          proxy_redirect off;
          proxy_set_header Host $host:$server_port;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

            # credentials fuer die authentifizierung an der kamera
            proxy_set_header Authorization "Basic 4oCeYWRtaW46cFRLV04wWjQ0MuKAnA==";
            proxy_pass_header Authorization;
          
            # dem aufrufenden browser erlauben, den stream in die website einzubinden, um die Meldung
            # "Blockiert durch X-Frame-Options-Richtlinie" zu vermeiden. 
            add_header Content-Security-Policy "img-src 'http://192.168.78.108:81/';";
          

          }
          # falls gewuenscht koennen hier logfiles eingerichtet werden. dazu das # vor der zeile entfernen
          # access_log /var/log/nginx/access.log;
          # error_log /var/log/nginx/error.log;
          }

          # HTTPS server
          #
          #server {
          #    listen       443 ssl;
          #    server_name  localhost;
          
          #    ssl_certificate      cert.pem;
          #    ssl_certificate_key  cert.key;
          
          #    ssl_session_cache    shared:SSL:1m;
          #    ssl_session_timeout  5m;
          
          #    ssl_ciphers  HIGH:!aNULL:!MD5;
          #    ssl_prefer_server_ciphers  on;
          
          #    location / {
          #        root   html;
          #        index  index.html index.htm;
          #    }
          #}
          

          }

          kann mal bitte jemand mit Zaunpfahl winken?

          T Offline
          T Offline
          tombox
          schrieb am zuletzt editiert von
          #4

          @alka onvif adapter kann das machen der kann ein snapshot server erstellen

          1 Antwort Letzte Antwort
          0
          Antworten
          • In einem neuen Thema antworten
          Anmelden zum Antworten
          • Älteste zuerst
          • Neuste zuerst
          • Meiste Stimmen


          Support us

          ioBroker
          Community Adapters
          Donate

          500

          Online

          32.7k

          Benutzer

          82.5k

          Themen

          1.3m

          Beiträge
          Community
          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
          ioBroker Community 2014-2025
          logo
          • Anmelden

          • Du hast noch kein Konto? Registrieren

          • Anmelden oder registrieren, um zu suchen
          • Erster Beitrag
            Letzter Beitrag
          0
          • Home
          • Aktuell
          • Tags
          • Ungelesen 0
          • Kategorien
          • Unreplied
          • Beliebt
          • GitHub
          • Docu
          • Hilfe