【手把手教你搭建MQTT服务器 + 域名备案 + 申请与部署SSL证书】 | 您所在的位置:网站首页 › 域名不备案可以解析到个人公网ip › 【手把手教你搭建MQTT服务器 + 域名备案 + 申请与部署SSL证书】 |
文章目录
购买云服务器实现远程登录搭建emqx服务器模拟数据交互测试购买、解析域名域名备案申请SSL证书emqx配置SSL证书结语
购买云服务器实现远程登录
购买云服务器 可以按照自己情况买,新用户有优惠的,然后有些平台完成学生认证也是有优惠的 本人选购的是轻量应用服务器2核2G4M的,装的Ubuntu 20.04LTS,Linux系统
重置终端密码,配置防火墙,开启SSH远程登录 腾讯云默认用户名为Ubuntu,首次购买后需要重置密码才可通过用户密码登录终端 腾讯云的ssh端口是自动开启的,阿里云端口配置记得是叫安全组
远程连接服务器,设置root密码 ssh ubuntu@公网119.91.237.127 #ubuntu是用户名,后面接自己云服务器的公网IP sudo passwd root #设置root用户密码 #输入密码 #再次输入 su #root登录 修改ssh配置文件,开启root远程登录 腾讯云默认root账户不能远程登录,需要修改ssh配置文件 sudo vim /etc/ssh/sshd_config #配置ssh的配置文件 /Per #输入斜杠查找指定字符串 将PermitRootLogin那行取消注释,并将后面改为yes 按下ESC,输入wq保存并退出 systemctl restart sshd #重启ssh服务器就可以用root登录了
测试root远程登录 ssh @root"公网IP"emqx开源版 下载安装 这里根据自己云服务器配置来安装吧 我选择的是版本是 4.2.14 系统是 Ubuntu 20.04 点Download就跳转到下面的界面了,复制三行代码在云端运行就下载好了 wget https://www.emqx.com/en/downloads/broker/4.2.14/emqx-ubuntu20.04-4.2.14-x86_64.deb #下载 ls #查看是否把压缩包下载下来 sudo apt install ./emqx-ubuntu20.04-4.2.14-x86_64.deb #安装 ls /etc/emqx #看看emqx目录下都有啥,如果没有报错就说明已经安装好了 sudo systemctl start emqx #启动emqx服务器
配置云服务器防火墙(阿里云的叫安全组),将emqx的端口都打开 端口说明1883MQTT/TCP 协议端口,一般用于客户端端口11883MQTT/TCP 协议内部端口,仅用于本机客户端连接8883MQTT/SSL 协议端口8083MQTT/WX 协议端口8084MQTT/WSS 协议端口18083EMQX后台管理端口重启emqx服务器 emqx restart登录emqx后台管理界面 浏览器输入:云服务器公网IP:18083 #后面的18083即为端口号,emqx服务器与mqtt协议具体的端口号与对应功能请看云防火墙配置时候的端口功能说明表格 默认用户:admin 默认密码:public 登录后可自行设置风格到这里emqx服务器就搭建好了! 同时我们就可以实现硬件与服务器的数据交互了。 可以在WebSocKet处测试连接,以及模仿订阅、发布等 如果想修改默认的登录密码可执行以下命令 cd /bin emqx_ctl admins passwd admin 新密码 具体实现硬件与服务器的数据交互可以参考项目复盘系列之硬件篇—学会白嫖 #待发布 有兴趣的话,可以用mqtt.fx来模拟客服端连接,来接收和发布消息 mqtt.fx.rar 提取码:pfcu 具体操作如下(不需测试的可直接跳过去看域名备案和服务器的证书部署啦) 模拟数据交互测试配置mqtt.fx的客户端基本信息 如下图;而后点击Connect连接,在Dashboard客户端查看是否连接成功
测试发布 MQTT协议是通过订阅发布来进行数据交互的。具体规则请自行查阅 mqtt.fx端发布主题名为:Topic WebSocket订阅主题名为:Topic 测试数据:aaa 测试订阅 mqtt.fx端订阅主题名为:Topic/1 WebSocket订阅主题名为:Topic/1 数据:{ “msg”: “Hello, World!” }
购买域名可以到腾讯、阿里、华为云等搜域名注册根据指示一步步做即可 域名注册现在需要先实名认证,大概审核需要十几分钟 进入域名控制台域名解析 解析就是将本域名指向指定的IP地址,是一种映射关系 记录值就是填写我们云服务器的公网IP 解析记录添加成功后,就可以用域名来访问emqx啦!如下 域名备案虽然刚刚部署完时候我们可以正常通过域名访问我们的emqx服务器,但是再过些时间就访问不了了,如出现如下画面 备案也麻烦,还要工信部审核,快的话几天,最长不超过20天 查看各个省份备案时间。 备案虽麻烦,但是也是为了大家的共同的网络使用环境着想,多一分体谅就多一分幸福。 备案提交后腾讯云工作人员会打电话审核真实身份。 腾讯云审核后工信部过几分钟就会发送短信核验,请根据短信提示进行核验。(湖南是这样的) 但是短信核验后好像并不会马上通过,因为在4天前有一个已经核验完了现在还没通过,具体时间请参考 所以请耐心等待 申请SSL证书为什么要申请证书? 因为有些平台通信是必须要HTTPS协议的,比如微信小程序。 进入腾讯云证书控制台申请免费SSL证书 回到购买域名的平台添加一条解析记录,注意解析类型 添加解析记录后等待十几分钟证书就会下发了。 下载证书 我这里下载Nginx(为后续程序上线做准备)以及其它(部署emq需要) ssl证书说明 后缀说明域名_bundle.crtCA证书文件域名.csrcsr文件时证书签名请求文件,在创建证书时使用,因此配置SSL服务时不需要关心此文件域名.key我们证书的私钥文件,以base64和格式分隔符加密.pem证书的base64加密文件,即就是证书 emqx配置SSL证书远程连接云服务器 具体配置实现在第一节,购买云服务器实现远程登录 ssh root@云服务器公网IP 然后咱进入emqx文件下的certs目录下创建ssl目录(这一步可省略) cd /etc/emqx/certs #路径不一定一样,具体看自己的emqx在哪 mkdir ssl #创建目录ssl 打开本地终端WIN+R 输入cmd,进入下载证书的目录 cd 路径 dir #查看当前目录下的文件 使用scp命令,将证书与密匙文件传到云服务器的ssl目录下 scp ddup.fun.key [email protected]:/etc/emqx/certs/ssl scp 文件名 服务器用户名@服务器公网IP:指定存储目录 #注意不要忘掉冒号了上传后我们可以查看已经成功了 配置emqx.conf文件 需要修改ssl的三个地方 listener.ssl.external.keyfile 秘钥文件 即.key文件listener.ssl.external.certfile base64加密的证书文件 即.pem文件listener.ssl.external.cacertfile CA证书文件 即.crt文件
如果也想修改wss就再修改三个地方 listener.wss.external.keyfilelistener.wss.external.certfilelistener.wss.external.cacertfile用到的vim编辑文件操作 斜杠搜索指定字符串 i 插入 wq保存退出 ESC键 退出当前的操作 cd /etc/emqx #进入emqx目录,路径不一定一样的喔 ls #查看当前目录下的文件 vim emqx.conf #编辑emqx.conf /listener.ssl.external.keyfile #搜索该字符串位置 #在后面更改为自己的对应ssl证书存储路径(可以到证书目录下输入pwd打印当前的绝对路径) #剩下两个文件同上 #然后同样步骤再修改wss的三个文件路径 #修改完成后按下ESC,输入:wq保存并退出 emqx restart #最后重启emqx服务器即可 #注:需要用域名来访问才支持ssl与wss,因为证书是绑定到域名的,所以到备案成功后才能支持ssl和wss连接。成功案例 斜杠搜索 修改ssl 修改wss ![]() |
CopyRight 2018-2019 实验室设备网 版权所有 |