14.4.2. Cerințe preliminare: OpenSSL și ceasul

Două elemente trebuie să fie pregătite înainte ca oricare dintre paginile practice să funcționeze: instrumentul de linie de comandă OpenSSL pe mașina dumneavoastră de dezvoltare și un ceas corect pe cameră în momentul fiecărui handshake TLS.

14.4.2.1. Instalarea OpenSSL

Comenzile din această secțiune folosesc instrumentul de linie de comandă openssl, rulat pe mașina dumneavoastră de dezvoltare – nu pe cameră. Adesea este deja instalat; verificați cu:

openssl version

Dacă lipsește, instalați-l pentru sistemul dumneavoastră de operare:

  • Linux – folosiți managerul de pachete, de ex. sudo apt install openssl (Debian/Ubuntu), sudo dnf install openssl (Fedora/RHEL) sau sudo pacman -S openssl (Arch).

  • macOSbrew install openssl folosind Homebrew.

  • Windows – instalați o versiune precum Win32/Win64 OpenSSL, folosiți un manager de pachete (winget install ShiningLight.OpenSSL.Light sau choco install openssl) ori folosiți openssl care vine cu Git for Windows (rulați-l din Git Bash).

14.4.2.2. Setarea ceasului

ssl.CERT_REQUIRED verifică perioada de valabilitate a fiecărui certificat, așa că ceasul camerei trebuie să fie corect, altfel verificarea eșuează (o cameră tocmai pornită nu are idee cât e ceasul). Cu o conexiune de rețea funcțională, modulul ntptime preia ora prin NTP și setează RTC-ul de pe placă (machine.RTC), în UTC:

import ntptime

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

După aceasta, time.localtime() și machine.RTC reflectă ora UTC curentă. Activarea interfeței de rețea depinde de placă și nu este prezentată aici; exemplele din paginile următoare presupun că respectiva cameră este deja conectată.