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) lubsudo pacman -S openssl(Arch).macOS –
brew install opensslprzy użyciu Homebrew.Windows – zainstaluj kompilację taką jak Win32/Win64 OpenSSL, użyj menedżera pakietów (
winget install ShiningLight.OpenSSL.Lightlubchoco install openssl) albo skorzystaj zopenssldostarczanego 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.