使用Openssl创建自签名证书并将其应用于您自己的MQTT服务器通信

01-20 8054阅读 0评论

使用Openssl创建自签名证书并将其应用于您自己的MQTT服务器通信 第1张

为什么使用ssl加密通讯

随着互联网的快速发展,网络安全越来越受到人们的关注。 没有人希望自己的数据被窃听或使用。 当我们直接使用TCP连接到服务器进行通信时,是以明文形式传输的。 使用抓包工具(如wireshark)可以很容易地捕获我们的数据包并对其进行分析。 输出相关数据。 例如,当我们直接登录mqtt服务器时,数据报文中包含登录账号、密码、ClientID等信息。 如果“坏人”捕获了这些信息慈云数据自营海外云服务器,高稳定高性价比,支持弹性配置,他就可以连接到我们的服务器。 显然这不是我们想要的结果。 。

使用Openssl创建自签名证书并将其应用于您自己的MQTT服务器通信 第2张

SSL 就是这个问题的解决方案。 也就是说,我们可以在我们的应用程序(HTTP、MQTT、FTP)和传输层(这里主要是 TCP)之间添加一层 SSL 加密传输。 细心的朋友可以发现,现在大多数网站都采用这种方式来加密通讯,之前的http已经悄然变成了https~

使用Openssl创建自签名证书并将其应用于您自己的MQTT服务器通信 第3张

证书与SSL的关系

使用Openssl创建自签名证书并将其应用于您自己的MQTT服务器通信 第4张

证书实际上是SSL中通信过程的基本保障。 用于验证服务器或者客户端是否可信(这里可以想到我们去银行办理网银的时候,通常银行会给我们一个“K宝”之类的小东西,它的作用就是客户端证书当我们登录银行网站进行交易时,网站会验证我们是否值得信赖,否则将不允许登录或后续交易操作)。 而经过公证的证书(由证书颁发机构,如CA机构颁发)有效防止他人仿冒,保证通信过程的安全。 我们这里制作的自签名证书仅供我们自己使用,不被认可。 好了,现在就这些了。 好啦,开始我们的主题吧。

使用Openssl创建自签名证书并将其应用于您自己的MQTT服务器通信 第5张

实际操作

这里需要我们测试环境的Ubuntu系统默认安装了Openssl。 如果还没有安装,可以使用 apt-get install openssl 相关命令进行安装。

使用Openssl创建自签名证书并将其应用于您自己的MQTT服务器通信 第6张

1. 生成CA私钥。 在这里我们“假装”自己是一个CA组织。 当然需要CA证书和私钥,否则怎么给别人办理业务呢~

openssl genrsa -out ca-key.pem 1024

使用Openssl创建自签名证书并将其应用于您自己的MQTT服务器通信 第7张

2. 创建证书请求。 证书请求是生成证书的必要过程。 请求中包含城市、单位、机构、组织、公众名称等信息。

openssl req -new -out ca-req.csr -key ca-key.pem

使用Openssl创建自签名证书并将其应用于您自己的MQTT服务器通信 第8张

3.自签名(CA)证书,也称为根证书。 之后,你就可以为“其他人”办理业务了。

openssl x509 -req -in ca-req.csr -out ca-cert.pem -signkey ca-key.pem -days 3650

以下是生成服务器证书的过程。 其实这个过程和上面生成CA证书的过程一模一样。

4. 生成服务器私钥

openssl genrsa -out server-key.pem 1024   

5.生成服务器证书请求文件

openssl req -new -out server-req.csr -key server-key.pem

使用Openssl创建自签名证书并将其应用于您自己的MQTT服务器通信 第9张

注意:Common Name 中必须填写您自己的服务器IP 地址(或域名)。

将请求文件提交给CA机构(这里是我们的~)生成服务器证书

openssl x509 -req -in server-req.csr -out server-cert.pem -signkey server-key.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -days 3650

以下是生成客户端证书的过程:

7. 生成客户端私钥

openssl genrsa -out client-key.pem 1024   

使用Openssl创建自签名证书并将其应用于您自己的MQTT服务器通信 第10张

8. 生成证书请求

openssl req -new -out client-req.csr -key client-key.pem

使用Openssl创建自签名证书并将其应用于您自己的MQTT服务器通信 第11张

9. 自签名证书

openssl x509 -req -in client-req.csr -out client-cert.pem -signkey client-key.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -days 3650

OK,到这里我们就完成了服务端和客户端的证书(完全手动工作- -!),接下来我们将使用我们生成的证书来实际应用,这里我们使用 EMQ(MQTT 服务器mqtt云服务器搭建,如果你不知道如何搭建)自己的MQTT客户端,可以参考我之前文章中的介绍,这里不再赘述)+mqttfx(MQTT客户端)的方法来测试。

10. 将服务器证书(server-cert.pem)和私钥(server-key.pem)复制并生成到 emq 工作目录下的 /emqx/etc/certs/ 下。

cp server-cert.pem server-key.pem  ../emqx/etc/certs/

11.打开emqx/etc中的emqx.conf配置文件

使用Openssl创建自签名证书并将其应用于您自己的MQTT服务器通信 第12张

找到listener.ssl.external.keyfile和listener.ssl.external.certfile这两个参数:

使用Openssl创建自签名证书并将其应用于您自己的MQTT服务器通信 第13张

这里我们可以看到默认值与我们生成的名称不匹配。 我们可以直接更改 emqx.conf 配置文件中的值,使其与我们的一致。 另外,我们也可以保持emqx.conf文件不变,修改我们制作的证书。 与私钥名称相同(这里我们采用这种方法,并尽量保持 emqx 原生文件不变)。 使用mv命令修改:

mv server-cert.pem cert.pem
mv server-key.pem key.pem

12.将Ubuntu中制作的CA和客户端相关的证书和密钥复制到Windows中(这是因为后面我们将使用Windows中的mqttfx客户端进行测试)。

cp c* /mnt/hgfs/winshare/my_cert/                //winshare是我的Ubuntu和Windows共享文件夹

使用Openssl创建自签名证书并将其应用于您自己的MQTT服务器通信 第14张

13.打开mqttfx客户端

使用Openssl创建自签名证书并将其应用于您自己的MQTT服务器通信 第15张

首先点击“User Creentials”设置服务器地址、端口号(emq 加密 ssl 端口默认为 8883)、登录用户名、密码(如果 emq 关闭匿名登录,则必须填写正确的用户名和密码,如果是匿名登录是否开启,可以忽略)等信息。

使用Openssl创建自签名证书并将其应用于您自己的MQTT服务器通信 第16张

使用Openssl创建自签名证书并将其应用于您自己的MQTT服务器通信 第17张

然后点击1)“SSL/TLS”进行相关配置:

2) 勾选“启用 SSL/TLS”

3)勾选“自签名证书”

4)加载我们之前生成的CA证书、客户端证书和客户端私钥

5) 勾选“PEM 格式”

使用Openssl创建自签名证书并将其应用于您自己的MQTT服务器通信 第18张

设置完上述内容后,点击“应用”或确定,返回主界面,点击“连接”即可连接到我们Ubuntu中的emq服务器

使用Openssl创建自签名证书并将其应用于您自己的MQTT服务器通信 第19张

之后我们就可以安全地与加密的服务器通信了。

终于

至此,我们就实现了自己的MQTT服务器的搭建以及加密通信,为我们以后的智能设备连接服务器并进行远程控制做准备。 如果您不熟悉如何构建 MQTT 服务器mqtt云服务器搭建,可以参考我的文章《为物联网搭建 MQTT 服务器》。 出于篇幅的考虑,今天我就笼统地讲一下SSL和证书,不再详细讲。 本文以实际操作为主。 如果您对创建证书的原因感兴趣,请留言。 我将来可以添加更多。 一篇理论文章。 好了,今天的分享就到这里。 欢迎朋友们关注、收藏、转发~

使用Openssl创建自签名证书并将其应用于您自己的MQTT服务器通信 第20张

1、外商投资企业可以申请ICP、EDI许可证吗? 申请需要什么条件?

(一)增值电信业务经营许可证——互联网信息服务业务(ICP):

外资比例不能超过50%慈云数据自营海外云服务器,高稳定高性价比,支持弹性配置,必须是中方主导外资云服务器,法人必须是中国人(需提供身份证信息)

(二)增值电信业务经营许可证——网上数据处理和数据交易(EDI):

为了吸引投资,工信部规定申请EDI许可证外资比例可以,但法人必须是中国人(需提供身份证信息)

能够办理上述业务的企业最好是中外合资企业和纯外商投资企业。 如果经过第二级、第三级溯源后还有外资,办理难度会大大增加。 详细问题可以咨询小编。

2、申请外商投资ICP、EDI许可证的流程是怎样的?

(1)根据公司情况,整合中外资比例较高的物资;

(二)将书面材料报送工业和信息化部,并在7个工作日内反馈;

(3)批准后90个工作日发出外商投资批准函(一般时间为1个左右);

(四)外商投资批准函签发后,需要安排增加经营范围(涉及电信业务);

(五)准备ICP、EDI许可证材料并报送信息通信发展部。 受理后,1-2个月内颁发证书。

3、企业申请外商投资ICP、EDI许可证需要提供哪些资料?

外商投资批准意见书材料如下:

(一)公司营业执照正本彩色扫描件;

(二)法人身份证原件彩色扫描件;

(3)境外股东证明材料:如果是法人股,需要提供登记证明,如果是自然人股,需要提供身份证明;

(四)主要境外投资者的电信运营经验及注册证明(主要境外投资者是指持股比例较大且在境外注册的企业);

(5)中方股东证明材料:如法人股东需提供营业执照原件彩色扫描件,自然人股东需提供身份证原件彩色扫描件;

(六)股东名单(须包括股东出资比例)。

申请ICP、EDI许可证所需材料如下:

(一)公司营业执照正本彩色扫描件;

(2)一级股东证明材料(一级股东为自然人股东的,需提供身份证原件彩色扫描件;一级股东为法人股东的外资云服务器,需提供身份证原件彩色扫描件)须提供营业执照正本);

(三)法人身份证原件彩色扫描件;

(四)三名主要管理人员身份证原件彩色扫描件及三名人员近一个月的社会保障证件彩色扫描件;

(5)网站域名证书彩色扫描件(注册所有人必须是申请公司);

(6)网站服务器接入协议原件彩色扫描件及托管服务商资质彩色扫描件(托管服务商是指您购买服务器的服务提供商,如阿里云、腾讯云等)。


免责声明
1、本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明。
2、本网站转载文章仅为传播更多信息之目的,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所
提供信息的准确性及可靠性,但不保证信息的正确性和完整性,且不对因信息的不正确或遗漏导致的任何
损失或损害承担责任。
3、任何透过本网站网页而链接及得到的资讯、产品及服务,本网站概不负责,亦不负任何法律责任。
4、本网站所刊发、转载的文章,其版权均归原作者所有,如其他媒体、网站或个人从本网下载使用,请在
转载有关文章时务必尊重该文章的著作权,保留本网注明的“稿件来源”,并白负版权等法律责任。

手机扫描二维码访问

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (暂无评论,8054人围观)

还没有评论,来说两句吧...

目录[+]