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) tai sudo pacman -S openssl (Arch).

  • macOSbrew install openssl käyttäen Homebrew-työkalua.

  • Windows – asenna käännös kuten Win32/Win64 OpenSSL, käytä paketinhallintaa (winget install ShiningLight.OpenSSL.Light tai choco 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.