14.4.2. Pré-requisitos: OpenSSL e o relógio

Dois elementos têm de estar em vigor antes que qualquer uma das páginas práticas funcione: a ferramenta de linha de comandos OpenSSL na sua máquina de desenvolvimento, e um relógio correto na câmara no momento de cada handshake TLS.

14.4.2.1. Instalar o OpenSSL

Os comandos nesta secção utilizam a ferramenta de linha de comandos openssl, executada na sua máquina de desenvolvimento – não na câmara. Muitas vezes já está instalado; verifique com:

openssl version

Se estiver em falta, instale-o para o seu sistema operativo:

  • Linux – use o gestor de pacotes, p.ex. sudo apt install openssl (Debian/Ubuntu), sudo dnf install openssl (Fedora/RHEL) ou sudo pacman -S openssl (Arch).

  • macOSbrew install openssl usando Homebrew.

  • Windows – instale uma compilação como Win32/Win64 OpenSSL, use um gestor de pacotes (winget install ShiningLight.OpenSSL.Light ou choco install openssl), ou use o openssl fornecido com Git for Windows (execute-o a partir do Git Bash).

14.4.2.2. Definir o relógio

ssl.CERT_REQUIRED verifica o período de validade de cada certificado, pelo que o relógio da câmara tem de estar correto ou a verificação falha (uma câmara ligada pela primeira vez não sabe que horas são). Com uma ligação de rede funcional, o módulo ntptime obtém a hora via NTP e define o RTC interno (machine.RTC), em UTC:

import ntptime

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

Depois disto, time.localtime() e machine.RTC refletem a hora UTC atual. Ativar a interface de rede é específico da placa e não é mostrado aqui; os exemplos nas páginas seguintes assumem que a câmara já está ligada.