Seite 1 von 1

SSL-Problem mit CUxD curl

Verfasst: 08.07.2018, 23:46
von 0x00
Hallo zusammen!

Bisher war ich stiller Leser dieses Forums und habe auch schon von diversen Beiträgen hier sehr profitiert. (Ich war zwar vor einem Jahr bereits registriert, aber als ich mich gerade einloggen wollte, war mein Konto wohl gelöscht.) An dieser Stelle also schon mal ein herzliches Dankeschön in die große Runde! Jetzt habe ich aber eine konkrete Frage zum curl im CUxD, für die ich bisher keine Antwort finden konnte. Ich habe aktuell das folgende Problem:

Ich würde gerne über meine CCU2 den Modus meiner Arlo-Kameras umschalten. Da Netgear ja leider noch keine offizielle API bereitstellt gehe ich den Umweg über IFTTT. Dort habe ich mit dem Maker den Status meiner Arlo-Kameras per Webhook-Event verknüpft. Das funktioniert so weit auch wunderbar. Ich kann mit

Code: Alles auswählen

curl https://maker.ifttt.com/trigger/MEIN_EVENT/with/key/MEIN_KEY
(oder auch direkt im Browser) also mein Event mittels GET-Request triggern.

Nun wollte ich den Aufruf mittels CUxD auf meiner CCU2 durchführen. Bei diversen anderen Requests wie z.B. Pushover funktioniert das auch wunderbar. Also habe ich im Programm den Scriptaufruf

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("LD_LIBRARY_PATH=/usr/local/addons/cuxd /usr/local/addons/cuxd/curl -s https://maker.ifttt.com/trigger/MEIN_EVENT/with/key/MEIN_KEY");
eingebaut. Das hat nun leider nicht funktioniert.

Ich hab das ganze also per Terminal von der CCU2 aus getestet, um dem Fehler näher zu kommen. Dort erhalte ich beim Aufruf von

Code: Alles auswählen

/usr/local/addons/cuxd/curl https://maker.ifttt.com/trigger/MEIN_EVENT/with/key/MEIN_KEY
dann auch direkt die folgende Fehlermeldung:

Code: Alles auswählen

curl: (60) SSL certificate problem: self signed certificate in certificate chain
. Dieses könnte ich nun natürlich mittels oder

Code: Alles auswählen

--insecure
Flag übergehen und den Request erfolgreich absetzen. Das fände ich aber sehr unschön, da maker.ifttt.com ja ein gültiges Zertifikat von Go Daddy vorweisen kann. Von Qualys SSL Labs gibt es hier auch ein "A" für den Server-Test.

Gibt es hier ein Problem mit dem CA Bundle, welches von curl aktuell genutzt wird? Wie könnte hier Abhilfe geschaffen werden?

Meine Versionen:
CCU2 mit (noch) Version 2.31.25
CUxD mit Version 2.0.0
#/usr/local/addons/cuxd/curl --version: curl 7.46.0 (arm-unknown-linux-gnu) libcurl/7.46.0 OpenSSL/1.0.0j zlib/1.2.7

Vielen Dank und liebe Grüße

Re: SSL-Problem mit CUxD curl

Verfasst: 09.07.2018, 14:20
von uwe111
0x00 hat geschrieben:
08.07.2018, 23:46
Gibt es hier ein Problem mit dem CA Bundle, welches von curl aktuell genutzt wird? Wie könnte hier Abhilfe geschaffen werden?
Welches wird denn genutzt?

Du kannst beim Aufruf Deine eigenen Zertifikate hinzufügen:

Code: Alles auswählen

 --cacert [file]
Hier ist das etwas ausführlicher beschrieben: https://curl.haxx.se/docs/sslcerts.html

Viele Grüße

Uwe

Re: SSL-Problem mit CUxD curl

Verfasst: 11.07.2018, 14:56
von 0x00
Es scheint als würde gar kein CA-Bundle benutzt werden:

Code: Alles auswählen

#strace /usr/local/addons/cuxd/curl https://www.google.com | grep open
open("/etc/ld.so.cache", O_RDONLY)      = 3
open("/usr/lib/libssl.so.1.0.0", O_RDONLY) = 3
open("/usr/lib/libcrypto.so.1.0.0", O_RDONLY) = 3
open("/usr/lib/libz.so.1", O_RDONLY)    = 3
open("/lib/librt.so.1", O_RDONLY)       = 3
open("/lib/libgcc_s.so.1", O_RDONLY)    = 3
open("/lib/libc.so.6", O_RDONLY)        = 3
open("/lib/libdl.so.2", O_RDONLY)       = 3
open("/lib/libpthread.so.0", O_RDONLY)  = 3
open("/etc/ssl/openssl.cnf", O_RDONLY|O_LARGEFILE) = 3
open("/etc/ld.so.cache", O_RDONLY)      = 3
open("/usr/lib/libz.so", O_RDONLY)      = 3
open("/root/.curlrc", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
open("/etc/resolv.conf", O_RDONLY)      = 3
open("/etc/nsswitch.conf", O_RDONLY)    = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
open("/lib/libnss_dns.so.2", O_RDONLY)  = 3
open("/lib/libresolv.so.2", O_RDONLY)   = 3
open("/etc/host.conf", O_RDONLY)        = -1 ENOENT (No such file or directory)
open("/etc/resolv.conf", O_RDONLY)      = 3
open("/dev/urandom", O_RDONLY|O_NOCTTY|O_NONBLOCK|O_LARGEFILE) = 4
Hier bekomme ich dann auch wieder die o.g. Fehlermeldung.

Ich habe dann das CA-Bundle von https://curl.haxx.se/ca/cacert.pem heruntergeladen und mit

Code: Alles auswählen

CURL_CA_BUNDLE='/usr/local/addons/cuxd/cacert.pem'
die entsprechende Umgebungsvariable gesetzt. Jetzt wird das Bundle genutzt (vorletzte Zeile):

Code: Alles auswählen

#strace /usr/local/addons/cuxd/curl https://www.google.com | grep open
open("/etc/ld.so.cache", O_RDONLY)      = 3
open("/usr/lib/libssl.so.1.0.0", O_RDONLY) = 3
open("/usr/lib/libcrypto.so.1.0.0", O_RDONLY) = 3
open("/usr/lib/libz.so.1", O_RDONLY)    = 3
open("/lib/librt.so.1", O_RDONLY)       = 3
open("/lib/libgcc_s.so.1", O_RDONLY)    = 3
open("/lib/libc.so.6", O_RDONLY)        = 3
open("/lib/libdl.so.2", O_RDONLY)       = 3
open("/lib/libpthread.so.0", O_RDONLY)  = 3
open("/etc/ssl/openssl.cnf", O_RDONLY|O_LARGEFILE) = 3
open("/etc/ld.so.cache", O_RDONLY)      = 3
open("/usr/lib/libz.so", O_RDONLY)      = 3
open("/root/.curlrc", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
open("/etc/resolv.conf", O_RDONLY)      = 3
open("/etc/nsswitch.conf", O_RDONLY)    = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
open("/lib/libnss_dns.so.2", O_RDONLY)  = 3
open("/lib/libresolv.so.2", O_RDONLY)   = 3
open("/etc/host.conf", O_RDONLY)        = -1 ENOENT (No such file or directory)
open("/etc/resolv.conf", O_RDONLY)      = 3
open("/dev/urandom", O_RDONLY|O_NOCTTY|O_NONBLOCK|O_LARGEFILE) = 4
open("/usr/local/addons/cuxd/cacert.pem", O_RDONLY|O_LARGEFILE) = 4
open("/usr/share/zoneinfo/CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00", O_RDONLY) = -1 ENOENT (No such file or directory)
und jetzt klappt auch der Aufruf.

Viele Grüße
Christoph

Re: SSL-Problem mit CUxD curl

Verfasst: 12.07.2018, 10:11
von uwe111
Hallo Christoph,

danke für Deine ausführlichen Hinweise. Ich werde es ab der nächsten Version in CUxD integrieren.

Viele Grüße

Uwe

Re: SSL-Problem mit CUxD curl

Verfasst: 13.07.2018, 00:30
von 0x00
Hey Uwe,

super! Vielen herzlichen Dank! Auch überhaupt für deine ganze Arbeit an CUxD. Ohne ihn wäre die CCU2 für mich wohl nur halb so wertvoll! Ich freue mich schon aufs Testen der nächsten Version.

Viele Grüße
Christoph

Re: SSL-Problem mit CUxD curl

Verfasst: 16.08.2018, 17:04
von uwe111
Hallo Christoph,

in der aktuellen CCU2-Version ist es jetzt drin.

Viele Grüße

Uwe