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.