14.4.2. Förutsättningar: OpenSSL och klockan

Två saker måste vara på plats innan någon av de praktiska sidorna fungerar: kommandoradsverktyget OpenSSL på din utvecklingsmaskin, och en korrekt klocka på kameran vid tidpunkten för varje TLS-handskakning.

14.4.2.1. Installera OpenSSL

Kommandona i det här avsnittet använder kommandoradsverktyget openssl, som körs på din utvecklingsmaskin – inte på kameran. Det är ofta redan installerat; kontrollera med:

openssl version

Om det saknas, installera det för ditt operativsystem:

  • Linux – använd pakethanteraren, t.ex. sudo apt install openssl (Debian/Ubuntu), sudo dnf install openssl (Fedora/RHEL) eller sudo pacman -S openssl (Arch).

  • macOSbrew install openssl med Homebrew.

  • Windows – installera en build såsom Win32/Win64 OpenSSL, använd en pakethanterare (winget install ShiningLight.OpenSSL.Light eller choco install openssl), eller använd det openssl som följer med Git for Windows (kör det från Git Bash).

14.4.2.2. Ställa in klockan

ssl.CERT_REQUIRED kontrollerar varje certifikats giltighetsperiod, så kamerans klocka måste vara korrekt annars misslyckas verifieringen (en nyss uppstartad kamera har ingen aning om vad klockan är). Med en fungerande nätverksanslutning hämtar modulen ntptime tiden via NTP och ställer in den inbyggda RTC:n (machine.RTC), i UTC:

import ntptime

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

Efter detta återspeglar time.localtime() och machine.RTC den aktuella UTC-tiden. Att starta upp nätverksgränssnittet är kortspecifikt och visas inte här; exemplen på de följande sidorna förutsätter att kameran redan är ansluten.