添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

版权声明:本文为CSDN博主「根号C」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接: https://blog.csdn.net/qq_38205154/article/details/118726385

最近做mqtt加密传输,做此笔记备忘

开源库版本:paho.mqtt.c-1.3.6.tar.gz

编译:将paho_mqtt_c/CMakeList.txt中:启用SSL编译

SET(PAHO_WITH_SSL TRUE CACHE BOOL "Flag that defines whether to build ssl-enabled binaries too. ")

编译为静态库:

SET(PAHO_BUILD_SHARED TRUE CACHE BOOL “Build shared library”)

SET(PAHO_BUILD_STATIC TRUE CACHE BOOL “Build static library”)

编译后引用静态库:paho-mqtt3cs.a

代码实现部分:

启用ssl加密不做认证:

MQTTClient_SSLOptions ssl_opts=MQTTClient_SSLOptions_initializer;
string sslServerAdd = "ssl://127.0.0.1:8883";
string client_id = "aaa";
MQTTClient_create(&client, sslServerAdd.c_str(), client_id.c_str(), MQTTCLIENT_PERSISTENCE_NONE, NULL);
ssl_opts.enableServerCertAuth=0;
ssl_opts.sslVersion=MQTT_SSL_VERSION_DEFAULT;
conn_opts.ssl=&ssl_opts;
int rc = MQTTClient_connect(client, &conn_opts);

单向认证:

MQTTClient_SSLOptions ssl_opts=MQTTClient_SSLOptions_initializer;
string sslServerAdd = "ssl://127.0.0.1:8883";
string client_id = "aaa";
MQTTClient_create(&client, sslServerAdd.c_str(), client_id.c_str(), MQTTCLIENT_PERSISTENCE_NONE, NULL);
ssl_opts.trustStore = "/tmp/ca.pem";
ssl_opts.sslVersion=MQTT_SSL_VERSION_DEFAULT;
conn_opts.ssl=&ssl_opts;
int rc = MQTTClient_connect(client, &conn_opts);

双向认证:

MQTTClient_SSLOptions ssl_opts=MQTTClient_SSLOptions_initializer;
string sslServerAdd = "ssl://127.0.0.1:8883";
string client_id = "aaa";
MQTTClient_create(&client, sslServerAdd.c_str(), client_id.c_str(), MQTTCLIENT_PERSISTENCE_NONE, NULL);
ssl_opts.trustStore = "/tmp/ca.pem";
ssl_opts.privateKey = "/tmp/client.key";
ssl_opts.keyStore = "/tmp/client.crt";
ssl_opts.sslVersion=MQTT_SSL_VERSION_DEFAULT;
conn_opts.ssl=&ssl_opts;
int rc = MQTTClient_connect(client, &conn_opts);

异步写法:

MQTTAsync_SSLOptions ssl_opts=MQTTAsync_SSLOptions_initializer;
ssl_opts.trustStore = "/tmp/app/ca.crt";
ssl_opts.keyStore  = "/tmp/app/client.crt";
ssl_opts.privateKey  = "/tmp/app/client.key";
conn_opts.ssl=&ssl_opts;

https://www.cnblogs.com/homejim/p/8196763.html

文章目录启用ssl加密不做认证:单向认证:双向认证:版权声明:本文为CSDN博主「根号C」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/qq_38205154/article/details/118726385最近做mqtt加密传输,做此笔记备忘开源库版本:paho.mqtt.c-1.3.6.tar.gz编译:将paho_mqtt_c/CMakeList.txt中:启用SSL编译SET(PAHO_WITH
paho-mqtt-c提供的demo中,有paho_c_sub.c和paho_c_pub.c两个demo,使用加密连接(秘钥、证书,用户名和密码)。可以基于这两个demo来进行调试,查看参数如何设置。 1. 首先确保机器上安装了openssl。 2. 在cmakelists.txt中,使能sshl和samples, SET(PAHO_WITH_SSL TRUE CACHE BOOL "Flag that defines whether to build ssl-enabled binaries
一、 MQTT遗嘱 MQTT 可以设置遗嘱,客户端在连接Broker的时候将遗嘱内容(也是topic + payload形式,遗嘱也有一个主题)发送给Broker并保存在Broker中,当客户端因为非正常原因断开与Broker的连接时,Broker会将遗嘱信息发送给订阅了该主题(订阅遗嘱的主题)的客户端。 客户端正常调用DISCONNECT断开连接时属于正常断开连接,Broker不会发送...
<groupId>org.bouncycastle</groupId> <artifactId>bcprov-jdk15on</artifactId> <version>1.69</version> </dependency> <dependency> openssl 交叉编译 ./config no-asm shared linux-armv4 no-async – prefix=/home/openssl-master/nuc980 // linux-armv4 =>>target // no-async>undefined reference ***context paho mqtt-c 交叉编译 cmake … -DPAHO_BUILD_STATIC=TRUE -DPAHO_WITH_SSL=TRUE - DCMKAE
目录Mosquitto 与 Eclipse Paho MQTT TLS使能备忘为什么使用MQTT原型系统构成服务端软件环境客户端软件环境使用OpenSSL构建TLS Mosquitto 与 Eclipse Paho MQTT TLS使能备忘 最近使用Mqtt协议为公司的分布式系统搭建了一个“简陋”的原型通信框架,实际使用下来效果还不错,因此打算对通信进行TLS加密,使其能够真正用于生产中。本文主要记录使用Mosquitto作为服务端及测试客户端,Paho MQTT(Python)作为客户端的使用配置下,用o
MQTT+SSL编译背景新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 物联网开发,需要与移动ONENET平台对接,涉及到MQTT+SSL通信。在网上下载了Eclipse的PAHO MQTT代码,
Paho是一个由Eclipse基金会开发和维护的开源MQTT客户端。它可以在多种平台上使用,包括Windows,Linux和iOS等。要使用Paho,首先需要安装它。接下来,可以使用Paho提供的API在应用程序中集成MQTT功能。 如何使用Paho的具体细节,可以参考Paho的文档和示例代码。