一、环境搭建

1.mosquitto介绍

mosquitto是一个实现了MQTT3.1协议的代理服务器,由MQTT协议创始人之一的Andy Stanford-Clark开发,它为我们提供了非常棒的轻量级数据交换的解决方案。

本文简单的介绍了关于mosquitto客户端的使用。mosquitto客户端在开发、测试过程中能模拟设备、应用程序,是一款较方便、好用的终端脚本工具。

2.mosquitto工具安装

Linux:yum install mosquitto

Window:https://mosquitto.org/download/

检查一下:

二、使用教程

1.mosquitto_pub命令参数

-d  打印debug信息
-f 将指定文件的内容作为发送消息的内容
-h 指定要连接的域名 默认为localhost
-i 指定客户端clientid,默认为附加进程ID的mosquitto_pub_
-I 指定clientId前缀
-m 消息内容
-n 发送一个空(null)消息
-p 连接端口号
-q 指定QoS的值(0,1,2)
-t 指定topic
-u 用户名
-P 用户密码
-V 指定MQTT协议版本
--will-payload 指定一个消息,该消息当客户端与broker意外断开连接时发出。该参数需要与--will-topic一起使用
--will-qos Will的QoS值。该参数需要与--will-topic一起使用
--will-retain 指定Will消息被当做一个retain消息(即消息被广播后,该消息被保留起来)。该参数需要与--will-topic一起使 用
--will-topic 用户发送Will消息的topic

2.mosquitto_sub命令参数

-c  指定客户端clean_session是否保存。
-d 打印debug信息
-h 指定要连接的域名 默认为localhost
-i 指定客户端clientid
-I 指定clientId前缀
-k keepalive 每隔一段时间,发PING消息通知broker,仍处于连接状态。 默认为60秒.
-q 指定希望接收到QoS为什么的消息 默认QoS为0
-R 不显示陈旧的消息
-t 订阅topic
-v 打印消息
--will-payload 指定一个消息,该消息当客户端与broker意外断开连接时发出。该参数需要与--will-topic一起使用
--will-qos Will的QoS值。该参数需要与--will-topic一起使用
--will-retain 指定Will消息被当做一个retain消息(即消息被广播后,该消息被保留起来)。该参数需要与--will-topic一起使>用
--will-topic 用户发送Will消息的topic

3.SSL/TLS CA证书说明

--cafile:CA证书文件

--cert:服务器证书文件

--key:服务器私钥文件

服务器未配置SSL/TLS认证的,就不需要--cafile  --cert  --key参数。

4.订阅一个主题

mosquitto_sub -h 主机 -p 端口 -t 主题 --cafile  --cert  --key

5.发布消息

mosquitto_pub -h 主机 -p 端口 -t 主题 --cafile  --cert  --key  -m 消息

查看订阅窗口是否收到消息:

mosquitto基于SSL/TLS安全认证测试MQTT的更多相关文章

  1. 基于mosquitto的MQTT服务器---SSL/TLS 单向认证+双向认证

    基于mosquitto的MQTT服务器---SSL/TLS 单向认证+双向认证 摘自:https://blog.csdn.net/ty1121466568/article/details/811184 ...

  2. mosquitto ---配置SSL/TLS linux

    mosquitto ---配置SSL/TLS 摘自: https://www.cnblogs.com/saryli/p/9821343.html 在服务器电脑上面创建myCA文件夹, 如在/home/ ...

  3. (转) HTTP & HTTPS网络协议重点总结(基于SSL/TLS的握手、TCP/IP协议基础、加密学)

    HTTP & HTTPS网络协议重点总结(基于SSL/TLS的握手.TCP/IP协议基础.加密学) 原文:http://blog.csdn.net/itermeng/article/detai ...

  4. mosquitto ---SSL/TLS 单向认证+双向认证

    生成证书 # * Redistributions in binary form must reproduce the above copyright #   notice, this list of ...

  5. mosquitto ---配置SSL/TLS

    在服务器电脑上面创建myCA文件夹, 如在/home/qa/ 文件夹下使用命令, mkdir myCA 然后执行以下命令,我们将创建并使用其他用户没有权限访问的目录. sudo chmod 700cd ...

  6. 基于SSL(TLS)的HTTPS网页下载——如何编写健壮的可靠的网页下载

    源码下载地址案例开发环境:VS2010本案例未使用openssl库,内部提供了sslite.dll库进行TLS会话,该库提供了ISSLSession接口用于建立SSL会话. HTTP协议很简单,写个简 ...

  7. 六、Mosquitto 高级应用之SSL/TLS

    mosquitto提供SSL支持加密的网络连接和身份验证.本章节讲述次功能的实现. 在此之前需要一些准备工作. 准本工作: 一台 Linux 服务器. 安装好 openssl (不会明白怎么安装 op ...

  8. 使用wireshark观察SSL/TLS握手过程--双向认证/单向认证

    SSL/TLS握手过程可以分成两种类型: 1)SSL/TLS 双向认证,就是双方都会互相认证,也就是两者之间将会交换证书.2)SSL/TLS 单向认证,客户端会认证服务器端身份,而服务器端不会去对客户 ...

  9. SSL/TLS 协议介绍

    SSL/TLS 协议(RFC2246 RFC4346)处于 TCP/IP 协议与各种应用层协议之间,为数据通讯提供安全支持. 从协议内部的功能层面上来看,SSL/TLS 协议可分为两层: 1. SSL ...

随机推荐

  1. vue & 百度地图:在地图上绘制多边形

    <template> <div class="hello"> <div style="margin-bottom:10px"> ...

  2. .net core 拦截socket

    using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net ...

  3. flask下直接展示mysql数据库 字段

    在工作中,会导出一份mysql的html来查看,用的是就是路过秋天大神的那个工具,所以想自己用那个样式直接在后端写一个页面做展示! 前端页面 from flask import Flask,reque ...

  4. npm 使用报错合集

    1.Unexpected end of JSON input while parsing near '...e,"directories":{},"d' 这个问题经常会出 ...

  5. 正在找工作的同学看过来,zozo最新的java面试题总会,学会月薪3万起!!!

    引言 为正在找工作的同学提供些许帮助,话不多说直接上题. 关注后私信我[资料]即可免费获取! 关注后私信我[资料]即可免费获取! 关注后私信我[资料]即可免费获取! 关注后私信我[资料]即可免费获取! ...

  6. 彻底解决ssh.invoke_shell() 返回的中文问题

    上一篇:https://www.cnblogs.com/apff/p/9484939.html(python如何实现普通用户登录服务器后切换到root用户再执行命令遇到的错误解决 ) 接上一篇,前两篇 ...

  7. 搭建vue项目的步骤

    新建vue脚手架 vue-element-cms步骤: 1. vue create ……………(文件名)---这里取为vue-element-cms 2. 命令行工具进入这个文件夹,安装路由依赖包 n ...

  8. 7.18 NOI模拟赛 因懒无名 线段树分治 线段树维护直径

    LINK:因懒无名 20分显然有\(n\cdot q\)的暴力. 还有20分 每次只询问一种颜色的直径不过带修改. 容易想到利用线段树维护直径就可以解决了. 当然也可以进行线段树分治 每种颜色存一下直 ...

  9. 服务没有报告任何错误。 请键入 NET HELPMSG 3534 以获得更多的帮助。

    解决: 删除data文件夹 然后按顺序执行: sc delete mysql mysqld  --initialize-insecure mysqld -install mysql net start ...

  10. spring中IOC入口与加载步骤

    ApplicationContext applicationContext =new ClassPathXmlApplicationContext("spring-context.xml&q ...