{"id":1616,"date":"2019-03-05T10:10:36","date_gmt":"2019-03-05T15:10:36","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/edelros\/?p=1616"},"modified":"2025-09-08T12:23:18","modified_gmt":"2025-09-08T17:23:18","slug":"mqtt-mosquitto-usuario-y-contrasena","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/girni\/mqtt-mosquitto-usuario-y-contrasena\/","title":{"rendered":"2. MQTT - Mosquitto usuario y contrase\u00f1a"},"content":{"rendered":"<p>Para crear un nivel de control de cu\u00e1les dispositivos operan con el servidor MQTT, se a\u00f1aden usuarios y contrase\u00f1as.<\/p>\n<h2>1. Crear usuarios y contrase\u00f1as<\/h2>\n<p>Mosquitto dispone de una instrucci\u00f3n para generar un archivo de contrase\u00f1as: mosquitto_passwd. La instrucci\u00f3n para crear el usuario requiere escribir una contrase\u00f1a a ser usada solo para el servicio MQTT:<\/p>\n<pre>sudo mosquitto_passwd -c \/etc\/mosquitto\/passwd usuarioprueba<\/pre>\n<p>Para cada usuario se validan las contrase\u00f1as, se solicita escribirlas dos veces:<\/p>\n<p>Nota puede usar para el ejemplo : \"usuarioprueba\" , \"usuarioclave\", al ejercutar la instrucci\u00f3n anterior tendr\u00e1 lo siguiente, teniendo que digitar la clave seleccionada.<\/p>\n<pre>pi@raspberrypi:~ $ sudo mosquitto_passwd -c \/etc\/mosquitto\/passwd usuarioprueba\r\nPassword:\r\nReenter password:<\/pre>\n<h2>2. A\u00f1adir control de usuarios a la configuraci\u00f3n<\/h2>\n<p>A\u00f1adir el control de usuarios requiere modificar el archivo de configuraci\u00f3n para indicar la ubicaci\u00f3n del archivo de contrase\u00f1as de cada usuario registrado.<\/p>\n<pre>sudo nano \/etc\/mosquitto\/conf.d\/default.conf<\/pre>\n<p>Y escribir en el archivo:<\/p>\n<pre>password_file \/etc\/mosquitto\/passwd\r\nallow_anonymous false<\/pre>\n<p>La \u00faltima instrucci\u00f3n, no permitir\u00e1 que se den servicio a mensajes sin autenticaci\u00f3n de usuario.<\/p>\n<p>Se guarda el archivo (^O) y sale de la aplicaci\u00f3n (^X).<\/p>\n<p>Una vez completada la acci\u00f3n anterior, se debe reiniciar mosquitto:<\/p>\n<pre>sudo systemctl restart mosquitto<\/pre>\n<h2>3. Pruebas de operaci\u00f3n<\/h2>\n<p>Realice nuevamente las pruebas de mensajes MQTT. Ahora se requiere indicar detalles del usuario que usa el servicio de suscripci\u00f3n y publicaci\u00f3n:<\/p>\n<pre>mosquitto_sub -d -t \"oficina\/mensaje\" -u \"usuarioprueba\" -P \"usuarioclave\"\r\n\r\nmosquitto_pub -d -t \"oficina\/mensaje\" -m \"controlando usuario\" -u \"usuarioprueba\" -P \"usuarioclave\"<\/pre>\n<p>Los resultados se muestran incluso con mayor detalle:<\/p>\n<pre>pi@raspberrypi:~ $ mosquitto_sub -d -t \"oficina\/mensaje\" -u \"usuarioprueba\" -P \"usuarioclave\"\r\nClient mosqsub|754-raspberrypi sending CONNECT\r\nClient mosqsub|754-raspberrypi received CONNACK (0)\r\nClient mosqsub|754-raspberrypi sending SUBSCRIBE (Mid: 1, Topic: oficina\/mensaje, QoS: 0)\r\nClient mosqsub|754-raspberrypi received SUBACK\r\nSubscribed (mid: 1): 0\r\nClient mosqsub|754-raspberrypi received PUBLISH (d0, q0, r0, m0, 'oficina\/mensaje', ... (19 bytes))\r\ncontrolando usuario<\/pre>\n<p>Como comprobaci\u00f3n, intente enviar un mensaje con usuario cambiado con clave errada.<\/p>\n<p>En las nuevas versiones, en modo \"localhost\" es decir desde un terminal del servidor, se aceptan todos los mensajes sin restricci\u00f3n como un modo de prueba de operaci\u00f3n. Par comprobar otro tipo de conexi\u00f3n se debe realizar desde otro programa o computador. por ejemplo: mqtt.fx<\/p>\n<p><a href=\"https:\/\/mqttfx.jensd.de\/\">https:\/\/mqttfx.jensd.de\/<\/a><\/p>\n<h3>3.1 Subscribirse a todos los t\u00f3picos<\/h3>\n<p>Se puede usar el comod\u00edn '#':<\/p>\n<pre>mosquitto_sub -v -h <strong><em>broker_ip<\/em><\/strong> -p 1883 -t '#'<\/pre>\n<h3>3.2 A\u00f1adir usuarios<\/h3>\n<p>Para a\u00f1adir usuarios a mosquitto, use la instrucci\u00f3n con el par\u00e1metro <strong>-b<\/strong>, a\u00f1adiendo el usuario y la clave.<\/p>\n<pre>sudo mosquitto_passwd -b \/etc\/mosquitto\/passwd usuarionuevo clavenueva<\/pre>\n<p>al terminar de agregar los usuarios, para activar los nuevos usuarios puede reiniciar el proceso como:<\/p>\n<pre>sudo systemctl restart mosquitto<\/pre>\n<hr \/>\n<h2>4. Mosquitto en Home Assistant<\/h2>\n<p>Para conectar Home-Assistant al broker Mosquitto, se requiere configurar los par\u00e1metros de conexi\u00f3n.<\/p>\n<p>La configuraci\u00f3n se puede realizar usando la p\u00e1gina web en el men\u00fa de:<\/p>\n<p>\"Ajustes\/Dispositivos y servicios\/Integraciones\"<\/p>\n<p>En el bot\u00f3n de \"agregar integraci\u00f3n\", seleccione entre las opciones \"MQTT\".<\/p>\n<p><a href=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2019\/03\/MQTT_Config02.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2879 size-full\" src=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2019\/03\/MQTT_Config02.png\" alt=\"MQTT Config 02\" width=\"409\" height=\"477\" srcset=\"https:\/\/blog.espol.edu.ec\/girni\/files\/2019\/03\/MQTT_Config02.png 409w, https:\/\/blog.espol.edu.ec\/girni\/files\/2019\/03\/MQTT_Config02-257x300.png 257w\" sizes=\"auto, (max-width: 409px) 100vw, 409px\" \/><\/a><\/p>\n<p>En otro caso, la forma mas tradicional es:<\/p>\n<p>Actualizar el inicio del servicio:<\/p>\n<pre>sudo nano \/etc\/systemd\/system\/home-assistant@homeassistant.service\r\n<\/pre>\n<p>En la l\u00ednea correspondiente a <code>After=<\/code><\/p>\n<pre>[Unit]\r\nDescription=Home Assistant\r\nAfter=network-online.target mosquitto.service\r\n<\/pre>\n<p>Se actualiza el archivo configuration.yaml con la instrucci\u00f3n:<\/p>\n<pre>sudo nano \/home\/homeassistant\/.homeassistant\/configuration.yaml\r\n<\/pre>\n<p>a\u00f1adiendo las instrucciones con los datos propuestos en el ejemplo que precede:<\/p>\n<pre>mqtt:\r\n  broker: localhost\r\n  port: 1883 \r\n  client_id: 'HA-broker'\r\n  username: 'usuarioprueba'\r\n  password: 'usuarioclave'\r\n<\/pre>\n<p>el par\u00e1metro de broker puede ser tambi\u00e9n la direcci\u00f3n IP del servidor mosquitto.<\/p>\n<p>Al reiniciar Home-Assistant, deber\u00eda iniciar con la configuraci\u00f3n propuesta.<\/p>\n<h2>5. MQTT con TLS<\/h2>\n<p>Para aumentar el nivel de seguridad de los mensajes MQTT, se a\u00f1ade encriptado TLS a los mensajes. El tema se desarrolla en la siguiente p\u00e1gina de publicaci\u00f3n.<\/p>\n<hr \/>\n<p><em><strong>Referencias:<\/strong><\/em><\/p>\n<p><a href=\"https:\/\/mcuoneclipse.com\/2017\/04\/14\/enable-secure-communication-with-tls-and-the-mosquitto-broker\">https:\/\/mcuoneclipse.com\/2017\/04\/14\/enable-secure-communication-with-tls-and-the-mosquitto-broker\/<\/a><\/p>\n<p><a href=\"https:\/\/aprendiendoarduino.wordpress.com\/tag\/configurar-mosquitto\/\">https:\/\/aprendiendoarduino.wordpress.com\/tag\/configurar-mosquitto\/<\/a><\/p>\n<p><a href=\"http:\/\/www.steves-internet-guide.com\/mosquitto-tls\/\">http:\/\/www.steves-internet-guide.com\/mosquitto-tls\/<\/a><\/p>\n<p><a href=\"https:\/\/www.hivemq.com\/blog\/mqtt-security-fundamentals-tls-ssl\/\">https:\/\/www.hivemq.com\/blog\/mqtt-security-fundamentals-tls-ssl\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Para crear un nivel de control de cu\u00e1les dispositivos operan con el servidor MQTT, se a\u00f1aden usuarios y contrase\u00f1as. 1. Crear usuarios y contrase\u00f1as Mosquitto dispone de una instrucci\u00f3n para generar un archivo de contrase\u00f1as: mosquitto_passwd. La instrucci\u00f3n para crear el usuario requiere escribir una contrase\u00f1a a ser usada solo para el servicio MQTT: sudo &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/blog.espol.edu.ec\/girni\/mqtt-mosquitto-usuario-y-contrasena\/\" class=\"more-link\">Continuar leyendo<span class=\"screen-reader-text\"> \"2. MQTT - Mosquitto usuario y contrase\u00f1a\"<\/span><\/a><\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1447336],"tags":[1293414,602214,1457735],"class_list":["post-1616","post","type-post","status-publish","format-standard","hentry","category-mqtt-mosquitto","tag-broker","tag-iot","tag-mqtt"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/posts\/1616","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/users\/8043"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/comments?post=1616"}],"version-history":[{"count":13,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/posts\/1616\/revisions"}],"predecessor-version":[{"id":4194,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/posts\/1616\/revisions\/4194"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/media?parent=1616"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/categories?post=1616"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/tags?post=1616"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}