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) odersudo pacman -S openssl(Arch).macOS –
brew install opensslmit Homebrew.Windows – installieren Sie einen Build wie Win32/Win64 OpenSSL, verwenden Sie einen Paketmanager (
winget install ShiningLight.OpenSSL.Lightoderchoco install openssl) oder nutzen Sie dasopenssl, 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.