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 le ofrece un entorno Mosquitto MQTT en la nube totalmente gestionado, diseñado para ofrecer fiabilidad y flexibilidad:
- Tráfico ilimitado de mensajes y transferencias de datos, para que sus flujos de trabajo nunca se vean limitados artificialmente.
- Autenticación ilimitada de dispositivos a través de su propia API externa, facilitando la incorporación y la gestión de accesos.
- ACLs avanzadas para un control detallado sobre topics, usuarios y acciones.
- Un nombre de dominio personalizado con HTTPS integrado para endpoints seguros y con su propia marca (por ejemplo: https://mqtt.su-empresa.com).
- Actualizaciones sin complicaciones: aplique mejoras o parches de seguridad con un solo clic.
- Rendimiento constante y alta seguridad, con cada instancia ejecutándose en una infraestructura privada y dedicada.
Impulse sus proyectos IoT y reduzca la carga operativa. Puede tener una instancia de Mosquitto MQTT cloud hosting segura y lista para producción en solo unos minutos.
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.