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) ousudo pacman -S openssl(Arch).macOS –
brew install opensslusando o Homebrew.Windows – instale uma build como o Win32/Win64 OpenSSL, use um gerenciador de pacotes (
winget install ShiningLight.OpenSSL.Lightouchoco install openssl), ou use oopensslque 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.