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ă.