Hallo paresy,
so ganz bin ich bei den Zertifikaten nicht fit.
Ich habe nun folgendes gemacht:
- im Firefox die API-URL aufgerufen (https://appapi.cp.dyson.com/v1/userregistration/authenticate?country=de)
der meckert zwar, das da keine Valide XML-Antwort ist, aber sonst ist der Browser „zufrieden“ - bin ich auch das „Schloss“ gegangen
den Rechtspfeil (hinter „Verbindung ist sicher“) gewählt
„weitere Informationen“ ausgewählt
dann „Zerttifikat anzeigen“ auslösen
der wechselt dann auf eine andere Seite
hier habe ich im Reiter *.dyson.com das PEM (Zertifikat) geladen
-
diese Datei habe ich an /usr/share/symcon/cacert.pem angehängt.
-
ich habe dann im IPS das Test-Script aufgerufen
<?php
declare(strict_types=1);
$url = 'https://appapi.cp.dyson.com/v1/userregistration/authenticate?country=DE';
$postdata = [
'Email' => 'a@b.c',
'Password' => 'pp',
];
$postdata = json_encode($postdata);
$headers = [
'Accept: */*',
'Content-Type: application/json',
'Content-Length: ' . strlen($postdata)
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$cdata = curl_exec($ch);
$cerrno = curl_errno($ch);
$cerror = $cerrno ? curl_error($ch) : '';
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
// var_dump(curl_getinfo($ch));
curl_close($ch);
echo 'cerrno=' . $cerrno, '(' . $cerror . '), httpcode=' . $httpcode . ', cdata=' . $cdata . PHP_EOL;
… leider keine Änderung
Muss ich noch etwas machen, damit das funktioniert? Muss ich die Änderung in cacert.pem irgendwie aktivieren?
Danke
demel