14.4.2. Vereisten: OpenSSL en de klok

Twee zaken moeten op hun plaats staan voordat een van de praktische pagina’s zal werken: het OpenSSL-opdrachtregelprogramma op je ontwikkelmachine, en een correcte klok op de camera op het moment van elke TLS-handshake.

14.4.2.1. OpenSSL installeren

De opdrachten in deze sectie gebruiken het openssl-opdrachtregelprogramma, dat op je ontwikkelmachine wordt uitgevoerd – niet op de camera. Het is vaak al geïnstalleerd; controleer dat met:

openssl version

Als het ontbreekt, installeer het dan voor je besturingssysteem:

  • Linux – gebruik de pakketbeheerder, bijv. sudo apt install openssl (Debian/Ubuntu), sudo dnf install openssl (Fedora/RHEL) of sudo pacman -S openssl (Arch).

  • macOSbrew install openssl met Homebrew.

  • Windows – installeer een build zoals Win32/Win64 OpenSSL, gebruik een pakketbeheerder (winget install ShiningLight.OpenSSL.Light of choco install openssl), of gebruik de openssl die wordt meegeleverd met Git voor Windows (voer hem uit vanuit Git Bash).

14.4.2.2. De klok instellen

ssl.CERT_REQUIRED controleert de geldigheidsperiode van elk certificaat, dus de klok van de camera moet correct zijn anders mislukt de verificatie (een net ingeschakelde camera heeft geen idee hoe laat het is). Met een werkende netwerkverbinding haalt de ntptime-module de tijd op via NTP en stelt de ingebouwde RTC (machine.RTC) in, in UTC:

import ntptime

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

Hierna geven time.localtime() en machine.RTC de huidige UTC-tijd weer. Het activeren van de netwerkinterface is bordspecifiek en wordt hier niet getoond; de voorbeelden op de volgende pagina’s gaan ervan uit dat de camera al verbonden is.