Überprüfen, ob alle Symcon API Endpunkte freigeschaltet sind

Wer kennt es nicht: Die IT sagt „Ihr habt vollen Zugriff aufs Internet“. Der Module Store quittiert aber mit „Error: SSL certificate problem: self-signed certificate in certificate chain“.

Nun könnte man meinen, die IT würde es glauben, dass es noch ein Problem gibt und dies schnell lösen. Da wir aber manchmal mehr Beweise brauchen und am besten immer direkt alle relevanten Endpunkt auf einmal testen wollen, gibt es nun dieses Skript. :slight_smile: Es prüft, ob Symcon/SymBox auf die wichtigsten Endpunkt zugriff hat und wenn nicht, könnt ihr $debug auf „true“ stellen und euch die Zertifikate ansehen. Denn gerne ist die Corporate Firewall der Meinung, man könnte uns doch ein falsche Zertifikat unterjubeln und wir würden es nicht merken. :grin:

<?php

$checks = [
    "https://apt.symcon.de",
    "https://api.symcon.de/store",
    "https://symcon-store.s3.eu-west-1.amazonaws.com/index.html",
    "https://live.symcon.de",
];
$debug = false;

// Ab hier muss nichts mehr geändert werden

$ok = true;
foreach($checks as $check) {
    if (!@file_get_contents($check)) {
        echo "FEHLER bei " . $check . PHP_EOL;
        $ok = false;
        $g = stream_context_create (array("ssl" => array("capture_peer_cert" => true, "verify_peer"=>false, "verify_peer_name"=>false,)));
        $r = stream_socket_client("ssl://" . $check . ":443", $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $g);
        $cont = stream_context_get_params($r);
        if ($debug) {
            var_dump(openssl_x509_parse($cont["options"]["ssl"]["peer_certificate"]));
        }
    }
}
if ($ok) {
    echo "Alles ok!";
}
6 „Gefällt mir“