14.4.2. Prerequisiti: OpenSSL e l’orologio

Due elementi devono essere predisposti prima che una qualsiasi delle pagine pratiche possa funzionare: lo strumento da riga di comando OpenSSL sulla tua macchina di sviluppo e un orologio corretto sulla camera al momento di ogni handshake TLS.

14.4.2.1. Installare OpenSSL

I comandi in questa sezione usano lo strumento da riga di comando openssl, eseguito sulla tua macchina di sviluppo – non sulla camera. Spesso è già installato; verificalo con:

openssl version

Se manca, installalo per il tuo sistema operativo:

  • Linux – usa il gestore di pacchetti, ad esempio sudo apt install openssl (Debian/Ubuntu), sudo dnf install openssl (Fedora/RHEL) o sudo pacman -S openssl (Arch).

  • macOSbrew install openssl usando Homebrew.

  • Windows – installa una build come Win32/Win64 OpenSSL, usa un gestore di pacchetti (winget install ShiningLight.OpenSSL.Light o choco install openssl), oppure usa l”openssl fornito con Git for Windows (eseguilo da Git Bash).

14.4.2.2. Impostare l’orologio

ssl.CERT_REQUIRED controlla il periodo di validità di ogni certificato, quindi l’orologio della camera deve essere corretto altrimenti la verifica fallisce (una camera appena accesa non ha idea di che ora sia). Con una connessione di rete funzionante, il modulo ntptime recupera l’ora tramite NTP e imposta l’RTC integrato (machine.RTC), in UTC:

import ntptime

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

Dopodiché, time.localtime() e machine.RTC riflettono l’ora UTC corrente. L’attivazione dell’interfaccia di rete è specifica della scheda e non è mostrata qui; gli esempi nelle pagine seguenti presuppongono che la camera sia già connessa.