1.1 购买服务器
国内的服务器厂家很多,考虑到稳定可靠的云服务才是最关键的,而规模比较大的公司在云应用层面有着非常丰富的应用经验,本文考虑阿里云、华为云、腾讯云这三家云平台,因为它们背靠互联网巨头,更值得用户的信赖。现对这三种云服务进行对比分析:
阿里云:在云服务器市场,阿里云服务器国内市场排名第一是无可争议的。它最大的特点就是弹性伸缩、多样化配置以及稳定可靠,云服务器本身在数据安全和稳定性方面的优势,可以让用户更加放心的使用阿里云服务器。
华为云:华为是硬件出身的,技术也是相对出色,它是唯一一家提供端到端服务能力的云计算平台。从基本的硬件设备到高级虚拟化部署,华为都有独立开发的产品。而且华为云服务器安全性能更强,从底层物理架构到软件基础服务,全栈式自研架构,容灾、灾备性能更强、更安全。也就是说,华为云技术积累比较雄厚,安全性能更加强大。
腾讯云:相比与阿里云,腾讯云的研发要迟3年左右的时间,所以市场占有率在国内排第二,因此腾讯云会经常做活动促销,用以吸引更多用户使用腾讯云。尤其是入门级的轻量级服务器,其性价很高,非常适合个人用户的轻量级服务器的搭建。
结合个人用户轻量级的开发目的,综合以上三种云服务器各自的特点与优势,本文选择了腾讯云。以下为购买腾讯云流程的几个关键步骤:
(1)计费模式和地域
根据毕设作品展示的需要,计费模式选择包月三个月,地域选择离广州,具体配置如图4.1所示:
图4.9 申请备案信息
其中备注要特别注明自己的用途,只是用于个人作品或者应用的开发,不能涉及商业用途,否则不能审核通过。笔者就是在第一次填写的时候备注没有说明清楚被驳回了,然后是客服打的电话说明了问题,修改后再次提交后通过了审核,笔者的审核记录如图4.10所示:
图4.10 备案审核记录
(3)备案成功。备案过程会比较长,收到备案通过的短信通知后也就完成了漫长的域名备案环节。
4.11备案成功
1.5 申请SSL证书
SSL证书(Secure Sockets Layer Certificate)是一种数字证书,可以用来保护网站和客户端之间的数据传输安全。SSL证书通过一种加密协议,在互联网上实现对信息传输的保护,防止信息泄露和数据窃取。SSL证书通常由网站所在的服务器颁发,用于标识网站身份和提供认证服务。SSL证书对于互联网信息传输的安全和验证都有着至关重要的作用,在网站、电子商务和在线金融等领域被广泛应用。
微信小程序对通信的安全性的要求比较高,考虑到本文采用微信小程序开发应用,所以一定要申请SSL证书。下面介绍申请SSL证书的几个关键步骤:
(1)进入腾讯云证书控制台申请免费SSL证书,申请界面如图4.12所示:
图4.12 申请免费SSL证书界面
(2)回到购买域名的平台添加一条解析记录。注意解析类型,添加解析后的界面如图4.13所示:
图4.13 添加一条解析记录后界面
添加解析记录后等待十几分钟证书就会下发了,下发SSL证书的界面如图4.14所示:
图4.14 SSL证书下发界面
(3)下载证书。因为部署emqx的需要和为后续程序上线做准备,这里从SSL证书列表中选择Nginx进行下载,下载界面如图4.15所示:
图4.15 下载SSL证书界面
Nginx中有四个文件重要的文件,分别为.crt .csr .key和.pem类型,它们具体的功能说明如表4.2所示:
表4.2 Nginx中各个文件具体说明
后缀 | 说明 |
域名_bundle.crt | CA证书文件 |
域名.csr | csr文件时证书签名请求文件,在创建证书时使用,因此配置SSL服务时不需要关心此文件 |
域名.key | 证书的私钥文件,以base64和格式分隔符加密 |
.pem | 证书的base64加密文件,即就是证书 |
1.6 EMQX配置SSL证书
(1)进入emqx文件下的certs目录下创建ssl目录
- cd /etc/emqx/certs #路径不一定一样,具体看自己的emqx在哪
- mkdir ssl #创建目录ssl
(2)打开本地终端WIN+R 输入cmd,进入下载证书的目录
- cd 路径
- dir #查看当前目录下的文件
(3)使用scp命令,将证书与密匙文件传到云服务器的ssl目录下
- scp ddup.fun.key [email protected]:/etc/emqx/certs/ssl
(4)配置emqx.conf文件
需要修改ssl的三个地方(wss进行同样的操作,下面不再赘述),详见表4.3:
表4.3 需要修改ssl参数
参数名称 | 说明 |
listener.ssl.external.keyfile | 秘钥文件 即.key文件 |
listener.ssl.external.certfile | base64加密的证书文件 即.pem文件 |
listener.ssl.external.cacertfile | CA证书文件 即.crt文件 |
在进入emqx.conf文件后,通过”/”匹配的指令快速定位上述三个参数并且进行修改,修改这些参数的目的是为了加载前面下载的各个证书,方便网络安全认证,为微信小程序的上线做准备。在云服务器Ubuntu系统上修改ssl参数和wss参数的界面如下面的图4.16和4.17所示:
图4.16 修改ssl
图4.17 修改wss
进行ssl和wss文件的修改之后,重启EMQX进行即可实现MQTT平台的搭建,为了验证MQTT平台搭建的成功与否,在hahaha.top:18083(其中hahaha.top是域名)的后台的Websocket进行ssl连接,发现连接成功,这说明ssl证书有已经配置成功。
有了ssl安全证书的许可,现在已经可以实现其他设备和微信小程序进行数据的交互的功能,基于此就可以进行微信小程序的设计与开发。至此,基于EMQX的MQTT平台搭建成功,后台查看Websocket如图4.18所示:
图4.18 后台查看Websocket
1.7 小结
介绍了基于EMQX搭建MQTT云服务平台的主要环节,其中包括了购买服务器、搭建EMQX服务器、购买并且解析域名、域名备案、申请SSL证书以及EMQX配置SSL证书。其中,域名备案、申请SSL证书和服务器配置SSL证书是比较关键的核心环节。尤其是域名备案需要较长时间的审核,也是上述步骤中最复杂的一个环节,需要耐心咨询和等待。