14.4.2. Előfeltételek: OpenSSL és az óra

Két dolognak a helyén kell lennie, mielőtt a gyakorlati oldalak bármelyike működne: az OpenSSL parancssori eszköznek a fejlesztői gépeden, és a kamera helyes órájának minden TLS-kézfogás pillanatában.

14.4.2.1. Az OpenSSL telepítése

Az ebben a szakaszban szereplő parancsok az openssl parancssori eszközt használják, amelyet a fejlesztői gépeden futtatsz – nem a kamerán. Ez gyakran már telepítve van; ellenőrizd a következővel:

openssl version

Ha hiányzik, telepítsd az operációs rendszeredhez:

  • Linux – használd a csomagkezelőt, pl. sudo apt install openssl (Debian/Ubuntu), sudo dnf install openssl (Fedora/RHEL) vagy sudo pacman -S openssl (Arch).

  • macOSbrew install openssl a Homebrew használatával.

  • Windows – telepíts egy buildet, például a Win32/Win64 OpenSSL csomagot, használj csomagkezelőt (winget install ShiningLight.OpenSSL.Light vagy choco install openssl), vagy használd a Git for Windows programmal érkező openssl eszközt (futtasd a Git Bash-ből).

14.4.2.2. Az óra beállítása

Az ssl.CERT_REQUIRED minden tanúsítvány érvényességi időszakát ellenőrzi, ezért a kamera órájának helyesnek kell lennie, különben az ellenőrzés sikertelen lesz (egy frissen bekapcsolt kamera nem tudja, hány óra van). Működő hálózati kapcsolat esetén az ntptime modul NTP-n keresztül lekéri az időt, és beállítja a fedélzeti RTC-t (machine.RTC), UTC-ben:

import ntptime

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

Ezután a time.localtime() és a machine.RTC az aktuális UTC-időt tükrözi. A hálózati interfész felhozása kártyafüggő, és itt nincs bemutatva; a következő oldalakon szereplő példák feltételezik, hogy a kamera már csatlakoztatva van.