14.4.2. Wymagania wstępne: OpenSSL i zegar

Dwie rzeczy muszą być na swoim miejscu, zanim którakolwiek z praktycznych stron zadziała: narzędzie wiersza poleceń OpenSSL na twojej maszynie deweloperskiej oraz poprawny zegar na kamerze w momencie każdego handshake TLS.

14.4.2.1. Instalacja OpenSSL

Polecenia w tej sekcji wykorzystują narzędzie wiersza poleceń openssl, uruchamiane na twojej maszynie deweloperskiej – a nie na kamerze. Często jest ono już zainstalowane; sprawdź za pomocą:

openssl version

Jeśli go brakuje, zainstaluj je dla swojego systemu operacyjnego:

  • Linux – użyj menedżera pakietów, np. sudo apt install openssl (Debian/Ubuntu), sudo dnf install openssl (Fedora/RHEL) lub sudo pacman -S openssl (Arch).

  • macOSbrew install openssl przy użyciu Homebrew.

  • Windows – zainstaluj kompilację taką jak Win32/Win64 OpenSSL, użyj menedżera pakietów (winget install ShiningLight.OpenSSL.Light lub choco install openssl) albo skorzystaj z openssl dostarczanego z Git for Windows (uruchom go z Git Bash).

14.4.2.2. Ustawianie zegara

ssl.CERT_REQUIRED sprawdza okres ważności każdego certyfikatu, więc zegar kamery musi być poprawny, w przeciwnym razie weryfikacja się nie powiedzie (świeżo włączona kamera nie ma pojęcia, która jest godzina). Przy działającym połączeniu sieciowym moduł ntptime pobiera czas przez NTP i ustawia wbudowany RTC (machine.RTC) w UTC:

import ntptime

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

Po tym time.localtime() i machine.RTC odzwierciedlają bieżący czas UTC. Włączenie interfejsu sieciowego zależy od płytki i nie jest tutaj pokazane; przykłady na kolejnych stronach zakładają, że kamera jest już połączona.