项目简介
本项目致力于构建一个安全的通讯系统,保障智慧城市物联网环境下的数据加密传输。借助SSL/TLS协议,为客户端与Mosquitto代理间的通讯提供安全防护,主要应用于智慧城市领域,提升物联网设备(如传感器、路灯等)之间的通信安全性。
项目的主要特性和功能
- SSL/TLS加密通讯:采用SSL/TLS协议对客户端和代理间的数据传输进行加密,确保信息安全传输。
- 用户名和密码认证:客户端需通过有效用户名和密码进行身份验证,保证只有授权用户可访问代理。
- 根证书和代理证书创建:项目提供创建根证书和代理证书的详细步骤,用于SSL/TLS加密通讯。
- NodeRed和Arduino客户端配置:提供配置NodeRed和Arduino客户端以接收安全传输消息的说明。
安装使用步骤
假设用户已下载本项目的源码文件。
步骤一:创建根证书
- 打开终端并进入想要创建根证书的文件夹。
- 使用命令创建配置文件并添加模板信息:
bash openssl-ca.cnf
,填写必要参数如国家、州、城市等。 - 使用命令生成根证书的私钥:
bash openssl genrsa -des3 -out rootCA.key 2048
。 - 使用私钥生成根证书:
bash openssl req -new -x509 -key rootCA.key -days 365 -out rootCA.crt -config openssl-ca.cnf
。
步骤二:创建代理证书
- 创建代理的公钥和私钥:
bash openssl genrsa -out broker.key 2048
。 - 创建证书请求文件(CSR):
bash openssl req -new -key broker.key -out broker.csr -config openssl-s.cnf
。 - 使用根证书签名CSR以生成代理证书:
bash openssl x509 -req -in broker.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out broker.crt -days 3650 -sha256
。 - 将生成的证书文件复制到Mosquitto的certs文件夹中。
步骤三:配置Mosquitto代理
- 配置Mosquitto代理使用已签名的证书,并允许匿名连接或要求用户名和密码认证。
- 配置文件示例:
bash listener 8883 allow_anonymous true cafile /etc/mosquitto/certs/rootCA.crt certfile /etc/mosquitto/certs/broker.crt keyfile /etc/mosquitto/certs/broker.key
步骤四:配置NodeRed
- 访问
http://localhost:1880
,修改代理节点的配置,将端口设置为8883
,并启用TLS。 - 设置NodeRed客户端的用户名和密码。
- 部署并检查每个节点的连接。
步骤五:配置Arduino客户端
- 将
rootCA.crt
转换为.pem
格式:bash openssl x509 -in rootCA.crt -out rootCA.pem
。 - 使用
arduino-fwuploader
工具将证书闪存到Arduino设备上。
通过以上步骤,即可成功配置并运行基于SSL/TLS加密的智慧城市物联网安全通讯系统。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】