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

Duas coisas precisam estar em ordem antes que qualquer uma das páginas práticas funcione: a ferramenta de linha de comando OpenSSL na sua máquina de desenvolvimento e um relógio correto na câmera no momento de cada handshake TLS.

14.4.2.1. Instalando o OpenSSL

Os comandos desta seção usam a ferramenta de linha de comando openssl, executada na sua máquina de desenvolvimento – não na câmera. Ela frequentemente já está instalada; verifique com:

openssl version

Se estiver ausente, instale-a para o seu sistema operacional:

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

  • macOSbrew install openssl usando o Homebrew.

  • Windows – instale uma build como o Win32/Win64 OpenSSL, use um gerenciador de pacotes (winget install ShiningLight.OpenSSL.Light ou choco install openssl), ou use o openssl que acompanha o Git for Windows (execute-o pelo Git Bash).

14.4.2.2. Ajustando o relógio

ssl.CERT_REQUIRED verifica o período de validade de cada certificado, então o relógio da câmera precisa estar correto ou a verificação falha (uma câmera recém-ligada não tem ideia de que horas são). Com uma conexão de rede funcionando, o módulo ntptime obtém a hora via NTP e ajusta o RTC embarcado (machine.RTC), em UTC:

import ntptime

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

Depois disso, time.localtime() e machine.RTC refletem a hora UTC atual. Ativar a interface de rede é específico de cada placa e não é mostrado aqui; os exemplos das páginas seguintes presumem que a câmera já esteja conectada.