Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. URL Request: CA signature digest algorithm too weak

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    URL Request: CA signature digest algorithm too weak

    This topic has been deleted. Only users with topic management privileges can see it.
    • IchBinSmart
      IchBinSmart last edited by IchBinSmart

      Hallo,

      ich nehme folgenden Forumseintrag mal als Basis um mein Problem zu beschreiben:

      Re: [Gelöst] Problem mit URL Request: "Error: self signed certificate"

      Bei meinem PhilipsTV möchte ich gerne den Status abfragen (aus, an, ..., die API könnte aber auch deutlich mehr - inklusive Steuerung des TV).

      (Details zur API findet man hier: https://github.com/eslavnov/pylips)

      Über folgende URL kann man abfragen wie der Powerstate ist:

      https://<<tv ip>>:1926/6/powerstate
      

      Und genau da beginnen meine Probleme. Das HTTPS-Zertifikat liefert im Chrome folgende Hinweise:

      NET::ERR_CERT_AUTHORITY_INVALID
      Subject: restfultv.tpvision.com
      Issuer: ca.tpvision.com
      Expires on: 04.10.2042
      Current date: 19.09.2020
      

      Dazu werden Username und Passwort im Digest-Format benötigt (username und pwd liegen vor, im Chrome kann ich die Site erreichen). Ich habe jetzt schon diverse Programmieransätze verfolgt. Scheitere aber immer wieder an diesem request-Error:

      Error: CA signature digest algorithm too weak
      

      Folgenden Ansatz habe ich zuerst versucht:

      const username = 'myuname',
            password = 'mypwd',
            url = 'https://<<ip tv>>:1926/6/powerstate';
      
      request.get(url, {
          'insecure': true,
          agentOptions: {
              secureOptions: 'SSL_OP_NO_SSLv3',
          },
          'auth': {
          'user': username,
          'pass': password,
          'sendImmediately': false
        }, callback: function(error, response, body) {
            log("Error: "+ error);
        }
      });
      

      Umgebaut (nach unzähligen anderen Versuchen, die alle den Error: CA signature digest algorithm too weak auswerfen) habe ich es dann zu folgendem Ansatz (basierend auf dem anderen Post):

          const https = require("https");
          var request = require("request");
          var agentOptions;
       
          agentOptions = {
              host: '192.168.1.61'
              , port: 1926
              , path: '/6/powerstate'
              , rejectUnauthorized: false
          };
       
          var agent = new https.Agent(agentOptions);
          var request = require('request');
      
          request({
          url: "https://192.168.1.61:1926/6/powerstate"
          , method: 'GET'
          ,'auth': {
              'user': username,
              'pass': password,
              'sendImmediately': false
          }
          , agent: agent
          }, function (err, resp, body) {
          log("Err: " + err);
          log("Body: " + body);
          });
      

      Dabei stürzt die Schnittstelle des TV komplett ab und ich muss den TV Neustarten.

      Kann mir bitte wer helfen, wie ich die URL mit Username & PWD im Digest bei den angegebenen Zertifikat-Problemen aufrufen kann? Ich komme nicht mehr weiter ✌

      Vielen Dank,
      Rainer

      IchBinSmart 2 Replies Last reply Reply Quote 0
      • IchBinSmart
        IchBinSmart @IchBinSmart last edited by

        Kennt jmd. eine Möglichkeit das Security-Level im request zu setzen? Das würde mir schon helfen 😵

        1 Reply Last reply Reply Quote 0
        • IchBinSmart
          IchBinSmart @IchBinSmart last edited by

          Keiner eine Idee? Dann antworte ich eben nochmal mir selbst 😊 :

          Variante 1 leicht abgewandelt bringt mich einen Schritt weiter:

          var fs = require('fs');
          request.get(url, {
              'insecure': true,
              agentOptions: {
                  //ca: fs.readFileSync('ca.tpvision.com'),
                  ciphers: 'DEFAULT@SECLEVEL=1',
              },
              //secure: true,
              //secureOptions: { rejectUnauthorized: false },
              
              'auth': {
              'user': username,
              'pass': password,
              'sendImmediately': false
            }, callback: function(error, response, body) {
                log("Error: "+ error);
            }
          });
          

          Neuer Fehler:

          Error: self signed certificate in certificate chain
          
          IchBinSmart 1 Reply Last reply Reply Quote 0
          • IchBinSmart
            IchBinSmart @IchBinSmart last edited by IchBinSmart

            Nächster Versuch: Zertifikat aus Chromium exportiert und auf Raspberry gespeichert. Coding:

            const https = require("https");
                var agentOptions;
                var fs = require('fs');
            
                agentOptions = {
                    host: '192.168.1.61'
                    , port: 1926
                    , path: '/6/system'
                    , requestCert: true
                    , ciphers: 'DEFAULT@SECLEVEL=0'
                    , cert: fs.readFileSync('/home/pi/philips_android_tv-master/restfultv.tpvision.com')
                    //, rejectUnauthorized: false
                };
             
                var agent = new https.Agent(agentOptions);
            
                
                request.get(url, {
                    auth: {
                        user: username,
                        pass: password,
                        sendImmediately: false
                }, 
                agent: agent,
                /*agentOptions: {
                    ciphers: 'DEFAULT@SECLEVEL=0',
                    cert: fs.readFileSync('/home/pi/philips_android_tv-master/restfultv.tpvision.com')
                },*/
                callback: function(error, response, body) {
                    log("Body: " + body);
                    log("Error: "+ error);
                }
            });
            

            Liefert Fehler:

            Error: error:140AB18E:SSL routines:SSL_CTX_use_certificate:ca md too weak
            

            😕

            Das blöde Zertifikat ist mit SHA1 verschlüsselt... Also muss ich das irgendwie zulassen...🤒

            rejectUnauthorized: false würde wieder zum Absturt der Schnittstelle führen!

            IchBinSmart 1 Reply Last reply Reply Quote 0
            • IchBinSmart
              IchBinSmart @IchBinSmart last edited by

              Hat irgendwer eine Idee? Ich habe es jetzt gelöst, indem der Fernseher als Smart-Device über Alexa2.0 adapter eingebunden ist & den Rest macht ein Harmony Hub. Die Api von oben wäre aber sehr interessant, da sie einen Adapter ermöglichen würde.

              patrickbs96 1 Reply Last reply Reply Quote 0
              • patrickbs96
                patrickbs96 Developer @IchBinSmart last edited by

                Hallo @ichbinsmart, ich bin gerade zufällig über den Beitrag gestolpert. Hast du mittlerweile eine Lösung gefunden?

                Ich selbst nutze das Skript hier und damit klappt es ohne Probleme.
                Ich habe es zwar etwas an meine Bedürfnisse angepasst aber mit der Version sollte es trotzdem funktionieren 🙂

                1 Reply Last reply Reply Quote 0
                • First post
                  Last post

                Support us

                ioBroker
                Community Adapters
                Donate

                866
                Online

                31.6k
                Users

                79.5k
                Topics

                1.3m
                Posts

                javascript multimedia security
                2
                6
                641
                Loading More Posts
                • Oldest to Newest
                • Newest to Oldest
                • Most Votes
                Reply
                • Reply as topic
                Log in to reply
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                The ioBroker Community 2014-2023
                logo