Novedad: el cortafuegos de IA supervisa toda la plataforma y explica cada incidente con palabras sencillas. Vea cómo funciona

Re: paho-mqtt en una Pi 3 de laboratorio falla el handshake TLS con 'certificate is not yet valid'

Traducido del English por IA ·

Pues eso es. Una Pi 3 no tiene reloj en tiempo real. Al arrancar restaura la hora que guardó en el último apagado limpio (fake-hwclock) y luego espera a NTP. Tu red de laboratorio bloquea NTP (UDP 123), así que el reloj se queda en el pasado y, para la biblioteca TLS, el certificado del servidor aún no es válido. Lo he visto en la mitad de las Pi de campo que he puesto en marcha tras cortafuegos muy restrictivos.Soluciones, elige una:

# 1. pide a TI el servidor NTP interno y úsalo
sudo nano /etc/systemd/timesyncd.conf
  [Time]
  NTP=ntp.your-lab.example
sudo systemctl restart systemd-timesyncd
timedatectl   # "System clock synchronized: yes"

# 2. si solo está abierto el 443: sincroniza con las cabeceras HTTPS
sudo apt install htpdate
sudo htpdate -s https://www.example.org

Quita la IP fija. El broker necesita SNI, así que conéctate por nombre de host; el certificado se comprueba con ese nombre de todos modos, por eso obtuviste el error de discrepancia. Un client.tls_set() sencillo con el paquete de CA del sistema está bien; Tyler, no se necesita certificado de cliente para los inicios de sesión con token, el servidor lo pide pero no lo exige.Además, haz que el script espere a un reloj sincronizado antes de conectarse; si no, un reinicio en el laboratorio volverá a romperlo. Un bucle sencillo sobre timedatectl show -p NTPSynchronized funciona. Consulta la sección TLS de MQTT.

If it isn't logged, it didn't happen.
Solución aceptada♥ 5