若您使用MQTT云网关将设备接入物联网平台,需通过添加云网关创建对应产品。本文介绍添加MQTT协议云网关的具体步骤。
前提条件
背景信息
添加云网关
- 登录物联网平台控制台。
- 在实例概览页面,单击目标尊享型实例。
- 在左侧导航栏,选择设备管理 > 云网关,单击添加云网关。
- 按照页面提示填写信息,然后单击确定。
参数 描述 云网关名称 为云网关命名。名称在实例内需具有唯一性。支持中文、英文字母、日文、数字、下划线(_),长度限制4~30个字符,一个中文或日文占2个字符。 协议 选择MQTT。 认证类型 可选一方认证和三方认证。 - 一方认证:您需要将设备认证信息(UserName、Password、SN)导入物联网平台,物联网平台会基于设备认证信息对设备进行认证。
- 三方认证:您需要在函数计算(FC)中实现自己的设备认证逻辑,并在物联网平台配置三方认证函数计算的配置,物联网平台收到设备建连请求后,会调用您预先配置的认证函数进行设备认证。
是否开启数据解析 选择云网关设备是否开启数据解析功能。 物联网平台透传云网关设备数据,您可根据实际业务需要,开启数据解析功能。您可在数据解析脚本中实现
transformPayload()
方法,将设备上报的原始数据转换为标准的JSON格式或物模型的Alink协议格式。数据解析功能的详细说明,请参见什么是数据解析。是否开启设备X.509证书认证 选择是否使用X.509数字证书进行设备身份认证。 是否开启OCSP 选择是否开启 OCSP (Online Certificate Status Protocol)功能。 可选:- 不开启
- 服务端证书的OCSP验证
- 客户端证书的OCSP验证
- 客户端+服务端证书的OCSP验证
说明- 是否开启设备X.509证书认证为否时,仅支持不开启和服务端证书的OCSP验证。
- 客户端证书的OCSP校验是在客户端发送消息时执行,如果证书已经吊销,服务端会主动关闭连接。
- 服务端OCSP Stapling功能默认缓存时间是5分钟至60分钟之间,缓存过期后第一个访问请求OCSP Stapling将不生效,直到重新获取OCSP Stapling信息为止。
服务端证书 通过云网关(MQTT)接入的设备仅支持TLS协议,因此,为了业务安全性,您需要预先配置设备接入的原服务器的CA证书和私钥。 请在对应输入框中,输入PEM编码的证书和证书私钥。
例如您的证书链从上至下为服务端根证书、服务端中间证书(可包含多层中间证书,例如依次有中间证书A、中间证书B)和服务端证书,则:- 云网关侧配置为:
- 服务端证书:按照证书链从下至上的顺序,依次输入服务端证书和服务端中间证书(例如依次为中间证书B、中间证书A)。
- 服务端证书私钥:输入对应的服务端证书私钥。
- 设备端证书配置为:服务端根证书。
服务端证书私钥 设备端根证书 是否开启设备X.509证书认证选中是时,需传入设备端根证书。 例如您的证书链从上至下为设备根证书、设备中间证书(可包含多层中间证书,例如依次有中间证书A、中间证书B)和设备证书,则:- 云网关侧设备端根证书:按照证书链从下至上的顺序,依次输入设备中间证书(例如依次为中间证书B、中间证书A)和设备根证书。
- 设备端证书配置为:设备证书。
信任证书 开启OCSP服务端证书验证时,需传入对应的信任证书(服务端证书链的根证书)。 例如您的证书链从上至下为服务端根证书、服务端中间证书(可包含多层中间证书,例如依次有中间证书A、中间证书B)和服务端证书,则云网关侧配置为:- 服务端证书:按照证书链从下至上的顺序,依次输入服务端证书和服务端中间证书(例如依次为中间证书B、中间证书A)。
- 信任证书:输入服务端根证书。
设备认证FC服务 仅认证类型为三方认证,需选择三方认证FC服务和对应函数,并选择AliyunIOTAccessingFCRole授权。 实现FC认证函数的入参、出参需要符合规范,认证函数名称可以自定义。认证函数入参、出参说明,请参见下表“认证函数说明”。
设备认证FC函数 授权 表 1. 认证函数说明 参数类型 参数名称 数据类型 是否必传 描述 请求参数 userName String 是 设备建连时上传MQTT的userName。 userName支持英文字母、数字、短划线(-)、下划线(_)、at(@)、英文句号(.)和英文冒号(:),长度限制为4~32个字符。userName在产品维度下不可重复。
password String 是 设备建连时上传MQTT的password。 password支持英文字母、数字、短划线(-)、下划线(_)、at(@)、英文句号(.)和英文冒号(:),长度限制为1~32个字符。
clientId String 是 设备建连时上传的MQTT的Client ID信息。 certificateCommonName String 否 该参数为X.509证书规范中的commonName字段。使用X.509数字证书进行设备身份认证时,需上传该参数。 返回参数 result String 是 认证是否成功,true表示成功,false表示失败。 message String 否 认证失败时返回的错误信息。 deviceName String 否 认证成功时,userName对应的设备名称。 设备首次建连时,物联网平台会根据deviceName返回值自动创建对应的设备。
认证函数返回参数示例:{ "result":"true", "deviceName":"device_TH", "message":"" }
- 在云网关列表,查看云网关信息,包含云网关名称、云网关ID、网关URL、状态和关联产品等。重要 您需保存云网关URL,对应设备连接物联网平台的MQTT接入域名需替换为该云网关URL。您可直接配置云网关URL为新接入域名,也可配置CNAME将接入域名解析到该云网关URL。
可选:编辑云网关
创建云网关成功后,在云网关列表,找到对应云网关,单击右侧操作栏的编辑,修改云网关名称、证书信息、FC认证函数。

执行结果
云网关+${云网关实例ID}
。您可在设备管理 > 产品页面,查看新建的产品。
您可单击产品列表右侧操作栏的查看,在产品详情页面查看产品信息,默认配置如下图所示。

后续步骤
- 三方认证的云网关创建成功后,设备首次建连时,物联网平台会根据认证函数的返回参数deviceName值自动创建对应的设备。
您可使用MQTT.fx工具模拟云网关设备接入物联网平台进行通信。具体操作,请参见设备使用MQTT.fx接入(三方认证)。
- 一方认证的云网关创建成功后,需您在物联网平台导入设备认证信息来创建云网关设备。具体操作,请参见批量添加设备。