栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

win10+mosquitto服务器配置单向认证与双向认证

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

win10+mosquitto服务器配置单向认证与双向认证

参考:
https://blog.csdn.net/qq_36202485/article/details/88949091
https://www.cnblogs.com/zkwarrior/p/10972464.html
对原作者表示感谢!
由于win10下,使用apollo服务器配置双向认证不成功,因此想到了使用mosquitto服务器。

1、安装、启动Mosquitto服务

Mosquitto官网下载地址:https://mosquitto.org/download/
注意安装过程中安装目录不能有空格、汉字。
安装完成Mosquitto之后,服务还没有启动,需要手动启动windows服务Mosquitto Broker,启动方法:
此电脑——右键“管理”——服务和应用程序——服务——找到Mosquitto Broker右键——启动。
该服务默认监听1883端口。
启动服务
windows下使用命令提示符cmd,进入mosquitto安装目录
输入命令 mosquitto -c mosquitto.conf
无提示信息,表示mqtt的broker端已经启动

2、生成证书:

根证书CA、服务端证书server.crt、服务端私钥server.key、客户端证书client.crt、客户端私钥client.key
生成方法,可以网上搜索。以下仅供参考:
1、创建根证书
CA根证书的生成步骤
生成CA私钥(.key)–>
生成CA证书请求(.csr)–>
自签名得到根证书(.crt)(CA给自已颁发的证书)。
1-1)、生成CA私钥(.key):
openssl genrsa -des3 -out rootca.key 1024
1-2)、生成CA证书请求(.csr):
openssl req -new -key rootca.key -out rootca.csr -config D:workzhengshuopenssl.cfg
1-3)、自签名得到根证书CA(.crt):
openssl req -x509 -days 365 -key rootca.key -in rootca.csr -out rootca.crt -config D:workzhengshuopenssl.cfg

用户证书的生成步骤
生成私钥(.key)–>生成证书请求(.csr)–>用CA根证书签名得到证书(.crt)
2、创建服务端用户证书
2-1)、生成私钥(.key)
openssl genrsa -des3 -out server.key 1024
2-2)、生成证书请求(.csr)
openssl req -new -key server.key -out server.csr -config D:workzhengshuopenssl.cfg
注:
服务启动的时候需要输入server.key的密码,解决办法是可以使用原key来生成解密后的key,并以解密后的key来代替,如下通过原server.key生成解密后的server_unsecure.key:(不推荐,未使用)
openssl rsa -in server.key -out server.key.unsecure
2-3)、用CA根证书签名得到证书(.crt)
openssl ca -in server.csr -out server.crt -cert rootca.crt -keyfile rootca.key -config D:workzhengshuopenssl.cfg
重要注意:
这一步:在目录D:workzhengshu下新建目录demoCA、certs,
在demoCA下,新建目录newcerts,在demoCA下,新建文件index.txt,内容为空,新建文本文件serial并且不能带后缀txt,写入01保存,然后回车根据提示往下进行。
如果增加天数,则按照如下模式(加入参数-days):
openssl ca -in server.csr -out server.crt -cert rootca.crt -keyfile rootca.key -days 365
-config D:workzhengshuopenssl.cfg

3、创建客户端用户证书
3-1)、生成私钥(.key)
openssl genrsa -des3 -out client.key 1024
.key 转换成 .pem:(MQTT.fx客户端在配置双向认证时需要这个格式)
openssl rsa -in temp.key -out temp.pem
举例:
openssl rsa -in client.key -out clientkey.pem

3-2)、生成证书请求(.csr)
openssl req -new -key client.key -out client.csr -config D:workzhengshuopenssl.cfg
3-3)、用CA根证书签名得到证书(.crt)
openssl ca -in client.csr -out client.crt -cert rootca.crt -keyfile rootca.key -config D:workzhengshuopenssl.cfg
3-4)、格式转换(转换为pfx格式,根据需要可能会用到,本例子未使用)
openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.pfx
openssl x509 -req -in client.csr -CA ca.crt -CAkey ca.key -CAserial ./ca.srl -out client.crt -days 3650 -addtrust clientAuth

3、配置单向认证、双向认证

本节内容配置在mosquitto.conf文件中

#设置不允许匿名登录
allow_anonymous false
#设置账户密码文件位置为 D:ProgramFilesMosquittopwfile.example
password_file D:ProgramFilesMosquittopwfile.example
插入新用户名及密码(后面登录需要)
mosquitto_passwd pwfile.example user1

注意:以下“纯单向”、“纯双向”、“单双向同时”的配置,三选一配置在文件mosquitto.conf中,端口自己随意设置,只要不冲突即可

纯单向认证配置
port 1884 -----设置TLS端口 为1884
cafile d:/myca/ca.crt -------- 证书文件
certfile d:/myca/server.crt ------------服务器证书文件
keyfile d:/myca/server.key ------------服务器私钥文件

双向认证的时候,客户端也需要提供证书。
在配置文件的时候 需要增加三项,意思是需要客户端也提供证书。

纯双向认证配置
port 1884 -----设置TLS端口 为1884
cafile d:/myca/ca.crt -------- 证书文件
certfile d:/myca/server.crt ------------服务器证书文件
keyfile d:/myca/server.key ------------服务器私钥文件
// 比单向认证增加的三项
allow_anonymous true
require_certificate true
use_identity_as_username true


注意:在 mosquitto 配置文件中 可以同时打开双向认证 和 单项认证 ,配置文件如下:
同时打开双向认证和单项认证的配置文件:
//1886的端口是双向认证的,客户端需要提供自己的client.crt证书,ca.crt, client.key
port 1886
cafile d:/myca/ca.crt
certfile d:/myca/server.crt
keyfile d:/myca/server.key
allow_anonymous true
require_certificate true
use_identity_as_username true

//1887端口是单向认证的 ,客户端只需要提供ca.crt证书就可以了
listener 1887
cafile d:/myca/ca.crt
certfile d:/myca/server.crt
keyfile d:/myca/server.key

以下是单向认证的配置截图

以下是双向认证的配置截图

以下是用户名+密码设置(就是前面在配置mosquitto.conf时插入的用户名及密码)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/320691.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号