Mosquitto为加密网络连接和身份认证提供了SSL支持。下面将介绍如何利用OpenSSL创建证书,及如何将证书应用在MQTT中
默认大家已经安装了mosquitto和OpenSSL,如未安装,请参考 mosquitto在Windows上的安装过程
第一部分:OpenSSL创建证书
前提条件:需要先安装OpenSSL,并将其添加至系统环境变量中(此步骤是为了后面命令操作方便)。如未安装,请参考上一篇 mosquitto在Windows上的安装过程
第一步:创建自签名根证书
openssl req -new -x509 -days 100 -extensions v3_ca -keyout ca.key -out ca.crt
-days 100 中的100代表证书有效期为100天,根据需要进行设定。下文中服务端,客户端证书创建命令中的-days 100同此作用。
命令窗口中输入以上命令
注意:
- Common Name 项可填写 主机名,域名或IP 三选一。(本文样例中填写的是主机名 admin)
- 后面用mosquitto命令订阅或发布时候的 -h 参数需要和此处Common Name填写对应,否则可能会出现证书认证失败,无法订阅或发布。
- 其它一些参数可忽略。
创建完成后可以在目录中看到ca证书
第二步:创建服务端证书
1. 打开命令窗口,输入以下命令,创建服务端私钥 server.key
openssl genrsa -out server.key 2048
2. 创建服务端证书请求文件 server.csr。该过程参数填写与根证书创建大致相同,一定要注意Common Name选项的填写。
openssl req -out server.csr -ke