14.4.2. Esivaatimukset: OpenSSL ja kello¶
Kaksi asiaa on oltava kunnossa ennen kuin mikään käytännön sivuista toimii: OpenSSL-komentorivityökalu kehityskoneellasi, sekä oikea kello kamerassa jokaisen TLS-kättelyn hetkellä.
14.4.2.1. OpenSSL:n asentaminen¶
Tämän osion komennot käyttävät openssl-komentorivityökalua, joka suoritetaan kehityskoneellasi – ei kameralla. Se on usein jo asennettuna; tarkista komennolla:
openssl version
Jos se puuttuu, asenna se käyttöjärjestelmällesi:
Linux – käytä paketinhallintaa, esim.
sudo apt install openssl(Debian/Ubuntu),sudo dnf install openssl(Fedora/RHEL) taisudo pacman -S openssl(Arch).macOS –
brew install opensslkäyttäen Homebrew-työkalua.Windows – asenna käännös kuten Win32/Win64 OpenSSL, käytä paketinhallintaa (
winget install ShiningLight.OpenSSL.Lighttaichoco install openssl), tai käytäopenssl-työkalua joka toimitetaan Git for Windows-ohjelmiston mukana (suorita se Git Bashista).
14.4.2.2. Kellon asettaminen¶
ssl.CERT_REQUIRED tarkistaa jokaisen varmenteen voimassaoloajan, joten kameran kellon on oltava oikea tai todennus epäonnistuu (juuri käynnistetty kamera ei tiedä mitään ajasta). Toimivalla verkkoyhteydellä ntptime-moduuli hakee ajan NTP:n yli ja asettaa kameran RTC:n (machine.RTC) UTC-aikaan:
import ntptime
ntptime.settime() # query NTP and set machine.RTC (UTC)
Tämän jälkeen time.localtime() ja machine.RTC heijastavat nykyistä UTC-aikaa. Verkkoliitännän käyttöönotto on korttikohtaista eikä sitä näytetä tässä; seuraavien sivujen esimerkit olettavat että kamera on jo yhdistetty.