14.4.2. Requisitos previos: OpenSSL y el reloj#

Dos elementos tienen que estar en su sitio antes de que ninguna de las páginas prácticas funcione: la herramienta de línea de comandos OpenSSL en su máquina de desarrollo y un reloj correcto en la cámara en el momento de cada handshake TLS.

14.4.2.1. Instalación de OpenSSL#

Los comandos de esta sección usan la herramienta de línea de comandos openssl, ejecutada en su máquina de desarrollo, no en la cámara. A menudo ya está instalada; compruébelo con:

openssl version

Si no está, instálela para su sistema operativo:

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

  • macOSbrew install openssl usando Homebrew.

  • Windows – instale una compilación como Win32/Win64 OpenSSL, use un gestor de paquetes (winget install ShiningLight.OpenSSL.Light o choco install openssl), o use el openssl que viene con Git for Windows (ejecútelo desde Git Bash).

14.4.2.2. Configuración del reloj#

ssl.CERT_REQUIRED comprueba el periodo de validez de cada certificado, por lo que el reloj de la cámara debe ser correcto o la verificación falla (una cámara recién encendida no tiene idea de qué hora es). Con una conexión de red operativa, el módulo ntptime obtiene la hora por NTP y configura el RTC integrado (machine.RTC), en UTC:

import ntptime

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

Tras esto, time.localtime() y machine.RTC reflejan la hora UTC actual. Levantar la interfaz de red depende de la placa y no se muestra aquí; los ejemplos de las páginas siguientes asumen que la cámara ya está conectada.