关于物联网:使用-EMQX-Cloud-实现物联网设备一机一密验证
数据安全是物联网利用的重中之重。各厂商常应用对称加密、非对称加密、数字签名、数字证书等办法来对设施进行认证,以避免非法设施的接入。在证书的应用形式上,有一型一密、一机一密等不同的计划,其中一机一密计划事后为每一个设施端设置惟一的设施证书,设施端与服务端通信时可能进行双向验证,验证通过后,设施端与服务端才进行失常的数据传输。相比于其余计划,一机一密可能做到针对每个设施的独自验证与受权,具备更高的安全性。 作为安全可靠的全托管 MQTT 音讯云服务, EMQX Cloud 反对多种认证形式,包含根底认证(用户名/明码,客户端 ID/明码)及 JWT、PSK 和 X.509 证书认证,同时可配置内部数据库作为数据源验证认证信息。 本文将采纳 Redis 作为认证数据源存储数据库,解说如何通过设施端证书中蕴含的 Common Name 为验证信息,连贯到 EMQX Cloud,实现客户端一机一密验证。若客户端证书中不带有指定惟一的 Common Name,则无奈通过认证。 通过本文,读者能够为其物联网设施实现一机一密、设施与服务器双向身份认证和建设平安通道的能力,无效避免伪造设施攻打、设施密钥被破解、伪造服务器指令、监听或篡改要害信息、通过设施产线安全漏洞窃取密钥等攻打伎俩。 操作流程一、配置 TLS/SSL 双向认证1、筹备工作购买服务器证书,并将其域名解析到部署连贯地址。 生成客户端 root ca 自签名证书,应用自签名 root ca 证书签发客户端证书需确保 Common Name 惟一。 # CA 证书生成 client-ca.crt,subj 根据理论应用状况调整。openssl req \ -new \ -newkey rsa:2048 \ -days 365 \ -nodes \ -x509 \ -subj "/C=Common Name/O=EMQ Technologies Co., Ltd/Common Name=EMQ CA" \ -keyout client-ca.key \ -out client-ca.crt# 客户端秘钥生成 client.keyopenssl genrsa -out client.key 2048# 生成客户端证书申请文件 client.csr,Common Name 为客户端携带认证信息openssl req -new -key client.key -out client.csr -subj "/Common Name=346a004d-1dab-4016-bb38-03cca7094415"# 用 CA 证书给客户端证书签名,生成 client.crtopenssl x509 -req -days 365 -sha256 -in client.csr -CA client-ca.crt -CAkey client-ca.key -CAcreateserial -out client.crt# 查看客户端端证书信息openssl x509 -noout -text -in client.crt# 验证证书openssl verify -CAfile client-ca.crt client.crt2、配置流程登录 EMQX Cloud 控制台 。进入部署详情,点击 +TLS/SSL 配置按钮,配置证书内容,您能够上传文件或者间接填写证书内容 TLS/SSL 认证类型: ...