Mosquitto: Configurar Mosquitto para conectarse a otro servidor (puente)

Esta documentación forma parte de la guía Puentes. Consulte la guía completa aquí: Cómo conectar servidores Mosquitto juntos (puente).

👋 ¡Bienvenido a la documentación de Stackhero!

Stackhero ofrece una solución Mosquitto MQTT cloud lista para usar que proporciona una serie de beneficios, incluyendo:

  • Intercambios y transferencias de mensajes ilimitados.
  • Autenticación de dispositivos ilimitada a través de una API externa.
  • ACLs avanzadas en temas, usuarios y acciones.
  • Nombre de dominio personalizable asegurado con HTTPS (por ejemplo, https://mqtt.su-empresa.com).
  • Actualizaciones sin esfuerzo con solo un clic.
  • Rendimiento óptimo y seguridad robusta impulsados por una VM privada y dedicada.

Ahorre tiempo y simplifique su vida: ¡solo toma 5 minutos probar la solución de Mosquitto MQTT cloud hosting de Stackhero!

En este ejemplo, un servidor remoto se conectará a una instancia de Stackhero utilizando un usuario dedicado con cifrado TLS para máxima seguridad.

Primero, cree un nuevo usuario en la instancia MQTT de Stackhero. Llamémoslo bridge-1, con la contraseña secretPassword.

A continuación, en el servidor Mosquitto remoto, puede editar el archivo de configuración mosquitto.conf (generalmente ubicado en /etc/mosquitto/mosquitto.conf) añadiendo las siguientes líneas al final:

# TODO: reemplace "<XXXXXX>.stackhero-network.com" y "<PORT_TLS>" con la información de su instancia de Stackhero
connection <XXXXXX>.stackhero-network.com
address <XXXXXX>.stackhero-network.com:<PORT_TLS>

# TODO: reemplace "bridge-1" y "secretPassword" con las credenciales del usuario recién creado
remote_clientid bridge-1
remote_username bridge-1
remote_password secretPassword

start_type automatic
try_private true

# Temas a compartir, dirección y QOS.
# Note que "both" parece no funcionar por una razón desconocida.
topic # out 2
topic # in 2

# Habilitar conexión TLS para cifrar datos entre su servidor Mosquitto remoto y su instancia de Stackhero.
bridge_insecure false
bridge_capath /etc/ssl/certs

Antes de reiniciar Mosquitto con su nueva configuración, asegúrese de que los certificados TLS existan en su servidor remoto.

Verifique que el directorio /etc/ssl/certs exista y contenga archivos con el comando:

ls /etc/ssl/certs

Si existe y contiene archivos, puede simplemente reiniciar su servidor Mosquitto.

Si no existe, puede considerar ejecutar uno de estos comandos:

  • En Ubuntu/Debian, puede ejecutar:

    sudo apt-get install ca-certificates
    
  • En Alpine Linux, puede ejecutar:

    apk add ca-certificates
    

Alternativamente, puede descargar manualmente el certificado. Para hacerlo, descargue el certificado CA a /etc/mosquitto/isrgrootx1.pem usando el siguiente comando:

wget https://letsencrypt.org/certs/isrgrootx1.pem -O /etc/mosquitto/isrgrootx1.pem

Luego, edite el archivo mosquitto.conf para reemplazar bridge_capath /etc/ssl/certs con bridge_cafile /etc/mosquitto/isrgrootx1.pem.

Finalmente, reinicie su servidor Mosquitto.

Para más información sobre la configuración de puentes, puede consultar la documentación oficial de Mosquitto.