14.4.2. Voraussetzungen: OpenSSL und die Uhr

Zwei Dinge müssen vorhanden sein, bevor eine der praktischen Seiten funktioniert: das OpenSSL-Kommandozeilenwerkzeug auf Ihrem Entwicklungsrechner und eine korrekte Uhr auf der Kamera im Moment jedes TLS-Handshakes.

14.4.2.1. OpenSSL installieren

Die Befehle in diesem Abschnitt verwenden das openssl-Kommandozeilenwerkzeug, das auf Ihrem Entwicklungsrechner ausgeführt wird – nicht auf der Kamera. Es ist oft bereits installiert; prüfen Sie dies mit:

openssl version

Falls es fehlt, installieren Sie es für Ihr Betriebssystem:

  • Linux – verwenden Sie den Paketmanager, z. B. sudo apt install openssl (Debian/Ubuntu), sudo dnf install openssl (Fedora/RHEL) oder sudo pacman -S openssl (Arch).

  • macOSbrew install openssl mit Homebrew.

  • Windows – installieren Sie einen Build wie Win32/Win64 OpenSSL, verwenden Sie einen Paketmanager (winget install ShiningLight.OpenSSL.Light oder choco install openssl) oder nutzen Sie das openssl, das mit Git for Windows ausgeliefert wird (führen Sie es aus Git Bash aus).

14.4.2.2. Die Uhr stellen

ssl.CERT_REQUIRED prüft den Gültigkeitszeitraum jedes Zertifikats, daher muss die Uhr der Kamera korrekt sein, sonst schlägt die Verifizierung fehl (eine frisch eingeschaltete Kamera hat keine Ahnung, wie spät es ist). Mit einer funktionierenden Netzwerkverbindung holt das Modul ntptime die Zeit über NTP und stellt die On-Board-RTC (machine.RTC) in UTC ein:

import ntptime

ntptime.settime()                 # query NTP and set machine.RTC (UTC)

Danach geben time.localtime() und machine.RTC die aktuelle UTC-Zeit wieder. Das Aktivieren der Netzwerkschnittstelle ist boardspezifisch und wird hier nicht gezeigt; die Beispiele auf den folgenden Seiten setzen voraus, dass die Kamera bereits verbunden ist.