¿Cómo instalo y configuro Mosquitto MQTT en su servidor Ubuntu 18.04? |

Mosquitto Message Queue Server Telemetry Transport (MQTT) es un robusto agente de mensajes de código abierto que facilita la implementación del protocolo MQTT versión 3.1 y versión 3.1.1. Es una aplicación simple que proporciona métodos convenientes para enrutar mensajes usando un modelo de publicación / suscripción.
La herramienta está diseñada para su uso en varios tipos de dispositivos de IoT, incluidas computadoras de una sola placa, de bajo consumo y servidores completos.
Este tutorial lo ayudará a instalar y configurar Mosquitto MQTT en su servidor Ubuntu 18.04.
Para implementar Mosquitto MQTT sin errores, necesita lo siguiente:
El primer paso para instalar este software es proporcionar un repositorio personalizado que pueda utilizar para instalar la última versión de Certbot. Para hacer esto, ejecute el siguiente comando:
$ sudo add-apt-repository ppa:certbot/certbot
Escoger INGRESAR para confirmar la instalación. A continuación, ejecute el siguiente comando para instalar Certbot y Mosquitto:
$ sudo apt install certbot mosquitto mosquitto-clients
Una vez que el software está instalado, puede obtener los certificados SSL. Pero primero ejecute el siguiente comando para permitir el puerto 80 en el firewall:
$ sudo ufw allow 80
Luego use el siguiente comando para indicarle a Certbot que busque el certificado.
$ sudo certbot certonly --standalone --preferred-challenges http -d mqtt.mydomain.com
Nota: Recuerda reemplazar mqtt.mydomian.com con su nombre de dominio específico.
Si se le solicita su dirección de correo electrónico, ingrese su dirección de correo electrónico oficial y acepte los términos. Una vez hecho esto, recibirá un mensaje confirmando el éxito del proceso. También averiguará dónde se guardó el certificado.
Ahora puede continuar con la instalación y configurar Mosquitto MQTT para usar los certificados SSL.
Al configurar Mosquitto MQTT para usar el certificado SSL, primero cree el archivo de contraseña con el mosquitto_passwd Mando. Este archivo se encuentra en el directorio. / etc / mosquitto / passwdy facilita que Mosquitto verifique todas las conexiones.
$ sudo mosquitto_passwd -c /etc/mosquitto/passwd your-username
Ingrese su contraseña dos veces cuando se le solicite. A continuación, ejecute el siguiente comando para abrir el nuevo archivo de configuración de Mosquitto:
$ sudo nano /etc/mosquitto/conf.d/default.conf
Este archivo debe estar vacío. Ahora agregue el siguiente contenido a este archivo:
allow_anonymousfalse password_file /etc/mosquitto/passwd listener 1883 localhost listener 8883 certfile /etc/letsencrypt/live/mqtt.mydomain.com/cert.pem cafile /etc/letsencrypt/live/mqtt.mydomain.com/chain.pem keyfile /etc/letsencrypt/live/mqtt.mydomain.com/privkey.pem listener 8083 protocol websockets certfile /etc/letsencrypt/live/mqtt.mydomain.com/cert.pem cafile /etc/letsencrypt/live/mqtt.maydomain.com/chain.pem keyfile /etc/letsencrypt/live/mqtt.mydomain.com/privkey.pem
Guardar y salir del archivo. Luego ejecute el siguiente comando para reiniciar Mosquitto y dejar que los cambios surtan efecto.
$ sudo systemctl restart mosquitto
A continuación, ejecute el siguiente comando para verificar el estado de Mosquitto:
$ sudo systemctl status mosquitto
Esto le dará una salida como esta:
●mosquitto.service- LSB: mosquittoMQTTv3.1messagebroker Loaded: loaded(/etc/init.d/mosquitto;generated) Active: active(running)sinceMon2018-08-1714:03:42UTC;2min39sago Docs: man:systemd-sysv-generator(8) Process: 6683ExecStop=/etc/init.d/mosquittostop(code=exited,status=0/SUCCESS) Process: 6699ExecStart=/etc/init.d/mosquittostart(code=exited,status=0/SUCCESS) Tasks: 1(limit:1152) CGroup: /system.slice/mosquitto.service └─6705/usr/sbin/mosquitto-c/etc/mosquitto/mosquitto.conf
Si Mosquitto no está activo (en ejecución), verifique el archivo de configuración y reinicie Mosquitto.
Ahora ejecute el siguiente comando para ver información adicional en el archivo de registro de Mosquitto:
$ sudo tail /var/log/mosquitto/mosquitto.log
Si todo está bien, ejecute los siguientes comandos para permitir los puertos 8883 y 8083:
$ sudo ufw allow 8883 $ sudo ufw allow 8083
¡Eso es! Mosquitto está completamente configurado. Sin embargo, nuestra instalación aún no está completa. Necesitamos configurar Certbot para reiniciar Mosquitto cada vez que se renueven los certificados.
Certbot está diseñado para renovar los certificados SSL antes de su fecha de vencimiento. Sin embargo, Certbot no está configurado para reiniciar Mosquitto después de renovar los certificados.
Ejecute el siguiente comando para abrir el archivo de configuración de renovación de certbot:
$ sudo nano /etc/letsencrypt/renewal/mqtt.mydomain.com.conf
Agregaremos uno renovar_gancho a la última línea de este archivo de configuración:
renew_hook = systemctl restart mosquitto
Guarde el archivo y salga de nano. A continuación, ejecute el siguiente comando para verificar que la sintaxis sea correcta:
$ sudo certbot renew --dry-run
Si no hay errores, la configuración es correcta.
Primero, ejecute el siguiente comando para suscribirse a un tema de prueba en su oyente localhost:
$ mosquitto_sub -h localhost -t test -u "your-user" -P "your-password"
A continuación, publique el tema de prueba con el mosquitto_pub::
$ mosquitto_pub -h localhost -t test -m "hello world" -u "your-user" -P "your-password"
Alternativamente, si desea suscribirse a través de un lister seguro en el puerto 8883, ejecute el siguiente comando:
$ mosquitto_sub -h mqtt.mydomain.com -t test -p 8883 --capath /etc/ssl/certs/ -u "your-username" -P "your-password"
A continuación, ejecute el siguiente comando para publicar:
$ mosquitto_pub -h mqtt.mydomain.com -t test -m "hello world" -p 8883 --capath /etc/ssl/certs/ -u "your-username" -P "your-password"
Ahora estamos probando la funcionalidad de WebSocket con el cliente Paho Javascript. un cliente basado en navegador para MQTT. Sigue estoatajo para abrir el cliente. Esto lo llevará a esta página:
Ingrese los detalles de la siguiente manera:
Deje todos los demás campos con sus valores predeterminados. prensa Conectar Para transferir el cliente a su servidor Ubuntu, use el Suscribirse a Botón de suscripción y Publicar mensaje Publica el botón de mensaje.
¡Eso es todo! Ha instalado y configurado correctamente Mosquitto MQTT Message Broker en su sistema Ubuntu 18.04. Ahora puede aprovechar el poder de esta plataforma de mensajería para implementar su domótica, IoT y otros proyectos similares.