上篇用TLS/SSL保证EMQ的网络传输安全讲了使用自签ca加密MQTT传输数据,如果mqtt用在web端,如何使用ssl、tsl加密?

1、web客户端

// 引入mqtt.min.js
// 将在全局初始化一个 mqtt 变量
//console.log(mqtt); // 连接选项
const options = {
connectTimeout: 4000, // 超时时间
// 认证信息
username: 'xiaoming',
password: '123456', }; // ws是普通通讯,端口8083;wss是加密通讯,必须用域名连接,端口是8084
// const client = mqtt.connect('ws://192.168.0.43:8083/mqtt', options);
const client = mqtt.connect('wss://www.test.com:8084/mqtt', options); // client.
client.on('connect', (error) => {
console.log('链接成功:', error)
});
client.on('reconnect', (error) => {
console.log('正在重连:', error)
}); client.on('error', (error) => {
console.log('连接失败:', error)
}); // 订阅列表
client.subscribe('pub', { qos: 2 });
// 监听接收消息事件
client.on('message', (topic, message) => {
// console.log('收到来自', topic, '的消息', message.toString()); });

2、EMQX服务端修改配置文件./emqx/etc/emqx.conf

## See: listener.ssl.$name.keyfile
##
## Value: File
listener.wss.external.keyfile = etc/certs/MyEMQ1.key
## listener.wss.external.keyfile = etc/certs/emqx.key ## Path to a file containing the user certificate.
##
## See: listener.ssl.$name.certfile
##
## Value: File
listener.wss.external.certfile = etc/certs/MyEMQ1.pem
## listener.wss.external.certfile = etc/certs/emqx.pem ## Path to the file containing PEM-encoded CA certificates.
##
## See: listener.ssl.$name.cacert
##
## Value: File
listener.wss.external.cacertfile = etc/certs/MyRootCA.pem
## listener.wss.external.cacertfile = etc/certs/my_root_ca.pem

3、注意:把之前生成的ca根证书安装到本地计算机和浏览器上,重启浏览器即可使用ssl加密连接web客户端和EMQX服务器

参考:https://www.jianshu.com/p/4fd95cae1a9c

使用mqtt+ssl加密 WebSocket 客户端连接 MQTT 服务器以及ws+wss协议的更多相关文章

  1. 使用 WebSocket 客户端连接 MQTT 服务器

    简介 近年来随着 Web 前端的快速发展,浏览器新特性层出不穷,越来越多的应用可以在浏览器端或通过浏览器渲染引擎实现,Web 应用的即时通信方式 WebSocket 得到了广泛的应用. WebSock ...

  2. redis客户端连接到服务器的步骤

    和大多数客户端连接到服务器一样,redis-cli连接到服务器也主要分为两个阶段,请求连接阶段和数据传送阶段.具体来讲redis-cli做的事情有: 1.以socket方式建立连接: 2,选择相应的数 ...

  3. ESA2GJK1DH1K升级篇: 远程升级准备工作: 使用TCP客户端连接Web服务器实现http下载数据

    一,根目录建一个文件 二,使用浏览器访问 http://47.92.31.46:80/1.txt     或者  http://47.92.31.46/1.txt 三,使用TCP客户端访问文件内容 3 ...

  4. 7.MQTT网页客户端连接MQTT服务器的问题WebSocket connection to 'ws://XXX:1883/' failed: Connection closed before receiving a handshake response

    问题描述:MQTT.js提供了连接MQTT的一套javascipt的方法,可供前端连接到MQTT服务器,也可以作为脚本测试.以脚本形式,用nodejs运行,是没有问题的,能够正常连接并且发送报文.但是 ...

  5. python websocket 客户端连接

    # -*- coding: utf-8 -*-import jsonimport websocketimport _thread as thread # try:# import thread# ex ...

  6. 修改客户端连接的服务器IP地址(内部使用)

    登录系统时如果出现 “验证失败”,或者,无法登陆系统,请修改服务器端IP地址,修改方法如下: 注意: (1)修改服务器端IP地址时,要提前关闭/退出客户端.建议也看看“Windows的任务管理器”中是 ...

  7. 局域网内sqldeveloper客户端连接oracle服务器

    1:输入参数 输入连接名(随便写) 用户名:system/tiger/sys或者是创建的用户 口令:设置的口令 主机名:连接的数据库所在的ip 端口:默认是1521 sid:orcl安装时自己设置的 ...

  8. loadunner使用socket协议来实现多客户端连接同一服务器脚本(使用到IP欺骗技术)

    第一部分: #include "lrs.h" vuser_init(){ lrs_startup(257); return 0;} 第二部分: Action(){ char *Re ...

  9. FileZilla 客户端连接 FlieZilla 服务器 连接成功读取目录列表却失败的解决办法

    解决过程: 第一步: 第二步:

随机推荐

  1. PentestBOX教程

    0x01 Pentest BOX Pentest Box:渗透测试盒子,是一款Windows平台下预配置的便携式开源渗透测试环境,而它也是著名黑客Kapustkiy常用的工具之一.这里集成的大都是Li ...

  2. 【C#】通过一个案例 彻底了解 Volatile和 内存屏障

    案例如下的.我个人理解是不会出现出现0,0的结果,但是很明显出现了. 说明对我对 Volatile\内存屏障\乱序排序的理解是不对. 今天就通过这个案例,理清这些概念. using System; u ...

  3. 网络中delay和latency的区别

    时序分析基本概念是Latency, 时钟传播延迟.主要指从Clock源到时序组件Clock输入端的延迟时间.它可以分为两个部分:时钟源插入延迟(source latency)和时钟网络延迟(netwo ...

  4. Qt:QList、QStringList

    QList 0.说明 QList<T> 一个QList是存储相同类型一组数据的列表. QStringList是从QList<String>继承而来,并添加了一些好用的方法,如j ...

  5. deepin下安装ESP32的开发环境

    deepin下安装ESP32的开发环境 本文章用于记录在deepin下安装ESP32的开发环境,前几日在CentOS7之下实现过,但CentOS7对于我这个Linux新手太不友好,于是重装deepin ...

  6. 【有奖调研】来,聊聊TTS音色定制这件事儿

    音色个性化定制,一个能让文字转语音服务(TTS)在用户交互过程中注入温度的技术. 文能在营销及内容交付中让品牌保持一致性,武能让开发者"音"量加持,创新开发. 这个100%钢铁纯技 ...

  7. 查询 docker 主机的 IP 地址

    在 Windows 下查询docker 主机的 IP 地址需要直接去网络中心查找虚拟机的 IP 地址,具体步骤: 进入网络中心 进入适配器更改选项 进入虚拟机 WSL 点击 属性 选中 IPv4 协议 ...

  8. 07 Java的方法 何谓方法

    Java的方法 1.何谓方法 System.out.println(); 那么它是什么呢? System是系统的类,out是System下的一个输出对象,println()就是一个方法 类.对象.方法 ...

  9. LGP5279题解

    这题好牛逼啊... 虽然说也是 DP 套 DP,但是感觉比 TJOI 那题高明到哪里去了( 我们先考虑如何计算期望.如果设 \(f_i\) 为拿到 \(i\) 张牌后胡的方案数,这个并不是很好做,因为 ...

  10. 对 Kubernetes 部署进行故障排除的视觉指南

    链接:https://learnk8s.io/troubleshooting-deployments