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) ofsudo pacman -S openssl(Arch).macOS –
brew install opensslmet Homebrew.Windows – installeer een build zoals Win32/Win64 OpenSSL, gebruik een pakketbeheerder (
winget install ShiningLight.OpenSSL.Lightofchoco install openssl), of gebruik deopenssldie 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.