开启EMQX的SSL模式及SSL证书生成流程

生成证书

首先:需要安装Openssl

以下是openssl命令

生成CA证书

bash 复制代码
1.openssl genrsa -out rootCA.key 2048 
2.openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 3650 -subj "/C=CN/ST=Shandong/L=jinan/O=yunding/OU=platform/CN=rootCA" -out rootCA.crt

生成服务端证书

bash 复制代码
1.openssl genrsa -out outkey/IoTServerEmq.key 2048  (IoTServerEmq.key  RSA加密的)
2.openssl req -new -key outkey/IoTServerEmq.key -out outkey/IoTServerEmq.csr -subj /C=CN/ST=Shandong/L=Jinan/O=yunding/OU=Iot/CN=IoTServerEmq
3.openssl pkcs8 -topk8 -in outkey/IoTServerEmq.key -out outkey/IoTServerEmq.pem -nocrypt
4.openssl x509 -req -in outkey/IoTServerEmq.csr -out outkey/IoTServerEmq.crt -CA outkey/rootCA.crt -CAkey outkey/rootCA.key -CAcreateserial -days 10950 -passin pass:password -extfile outkey/openssl3.cfg -extensions v3_req

生成client证书

bash 复制代码
1.openssl genrsa -out outkey/IoTClientDm.key 2048
2.openssl req  -new -key outkey/IoTClientDm.key -out outkey/IoTClientDm.csr -subj /C=CN/ST=Shandong/L=Jinan/O=yunding/OU=Iot/CN=IoTClientDm
3.openssl pkcs8 -topk8 -in outkey/IoTClientDm.key -out outkey/IoTClientDm.pem -nocrypt   (IoTClientDm.pem 不加密的)
4.openssl x509 -req -in outkey/IoTClientDm.csr -out outkey/IoTClientDm.crt -CA outkey/rootCA.crt -CAkey outkey/rootCA.key -CAcreateserial -days 36500 -passin pass:password -extfile outkey/openssl3.cfg -extensions v3_req

生成如下文件:

存放证书

将生成的CA证书,Server证书,Server私钥放到etc/certs目录

修改EMQX配置文件

配置emqx.conf:

证书存放地址

listener.ssl.external.keyfile = etc/certs/yunding/IoTServerEmq.key

listener.ssl.external.certfile = etc/certs/yunding/IoTServerEmq.crt

listener.ssl.external.cacertfile = etc/certs/yunding/rootCA.crt
开启端对端认证

listener.ssl.external.verify = verify_peer
强制开启双向认证,如果客户端无法提供证书,则 SSL/TLS 连接将被拒绝

listener.ssl.external.fail_if_no_peer_cert = true

客户端连接

官方手册:

获取ssl/tsl证书:

https://www.emqx.io/docs/zh/v5.1/network/tls-certificate.html#创建自签名证书
开启ssl/tsl连接:

https://www.emqx.io/docs/zh/v5.1/network/emqx-mqtt-tls.html#安全优势

相关推荐
小赖同学啊2 小时前
物联网中的Unity/Unreal引擎集成:数字孪生与可视化控制
物联网·unity·游戏引擎
小赖同学啊2 小时前
区块链技术在物联网(IoT)中的核心应用场景
物联网·区块链
时序数据说2 小时前
为什么时序数据库IoTDB选择Java作为开发语言
java·大数据·开发语言·数据库·物联网·时序数据库·iotdb
御控工业物联网4 小时前
物联网仿真实训教学平台:以网关为核,重塑教育新范式
物联网·工业智能网关·实训教学·物联网实训平台·教育实训平台
时序数据说5 小时前
时序数据库IoTDB用户自定义函数(UDF)使用指南
大数据·数据库·物联网·开源·时序数据库·iotdb
天天爱吃肉82185 小时前
ZigBee通信技术全解析:从协议栈到底层实现,全方位解读物联网核心无线技术
python·嵌入式硬件·物联网·servlet
博睿谷IT99_6 小时前
华为物联网认证:开启万物互联的钥匙
物联网·华为·华为认证·职业规划
糖果罐子♡6 小时前
MQTT 入门指南(一)
物联网·mqtt·嵌入式·通信协议
小赖同学啊8 小时前
基于区块链的物联网(IoT)安全通信与数据共享的典型实例
物联网·安全·区块链
S,D1 天前
MCU引脚的漏电流、灌电流、拉电流区别是什么
驱动开发·stm32·单片机·嵌入式硬件·mcu·物联网·硬件工程