若您使用MQTT云網關將設備接入物聯網平臺,需通過添加云網關創建對應產品。本文介紹添加MQTT協議云網關的具體步驟。
前提條件
已購買尊享型企業版實例。購買方法,請參見購買企業版實例。
背景信息
物聯網平臺的云網關使用說明,請參見接入MQTT云網關設備。
添加云網關
登錄物聯網平臺控制臺。
在實例概覽頁面,單擊目標尊享型實例。
在左側導航欄,選擇 ,單擊添加云網關。
配置基本信息,然后單擊下一步。
參數
說明
云網關名稱
為云網關命名。名稱在實例內需具有唯一性。支持中文、英文字母、日文、數字、下劃線(_),長度限制4~30個字符,一個中文或日文占2個字符。
協議
選擇MQTT。
自定義端口號
取值范圍為1024~65535。默認端口號為1883。
是否開啟數據解析
選擇云網關設備是否開啟數據解析功能。
物聯網平臺透傳云網關設備數據,您可根據實際業務需要,開啟數據解析功能。您可在數據解析腳本中實現
transformPayload()
方法,將設備上報的原始數據轉換為標準的JSON格式或物模型的Alink協議格式。數據解析功能的詳細說明,請參見什么是消息解析。認證類型
一方認證
您需要將設備認證信息(UserName、Password、SN)導入物聯網平臺,物聯網平臺會基于設備認證信息對設備進行認證。
三方認證
您需要選擇阿里云函數計算或外部HTTPS認證方式。阿里云函數計算FC的更多信息,請參見什么是函數計算。
阿里云FC:需設置設備認證FC服務、設備認證FC函數和授權,您可以選擇已有的FC函數或創建新的FC函數FC認證函數的入參、出參需要符合規范,認證函數名稱可以自定義。認證函數的入參、出參說明,請參見表 1. FC認證函數說明。
外部HTTPS:必須配置設備認證HTTPS URL,可以配置自定義認證參數。
設備認證URL以
https://
開頭。物聯網平臺通過HTTPS方式調用自定義的設備認證服務,實現HTTPS調用的入參、出參需要符合規范。具體說明,請參見表 2. HTTPS認證參數說明。最多配置10個自定義認證參數(
Key:Value
)。參數Key:參數名稱,長度不可超過64個字符。
參數Value:參數值,長度不可超過64個字符。支持設置為變量,變量格式為
${變量名名稱}
。支持的變量為:${username}
:設備建連時上傳MQTT的userName。${password}
:設備建連時上傳MQTT的password${clientId}
:設備建連時上傳的MQTT的Client ID信息${cert.***}
:證書信息,其中***
可取值cn
、serial
、issuer
。${userProperties.***}
:Connect報文中的自定義數據UserProperty
,***
為自定義字段標識符。
是否開啟設備X.509證書認證
開啟設備X.509證書認證
需要配置是否開啟OCSP:
不開啟
服務端證書的OCSP驗證
客戶端證書的OCSP驗證
客戶端+服務端證書的OCSP驗證
說明OCSP表示在線證書狀態協議,該協議用于向簽發證書的CA(Certificate Authority)中心發起查詢請求,檢查證書是否被吊銷。
客戶端證書的OCSP校驗是在客戶端發送消息時執行,如果證書已經吊銷,服務端會主動關閉連接。
服務端OCSP Stapling功能默認緩存時間是5分鐘至60分鐘之間,緩存過期后第一個訪問請求OCSP Stapling將不生效,直到重新獲取OCSP Stapling信息為止。
不開啟設備X.509證書認證
需要配置是否開啟OCSP:
不開啟
服務端證書的OCSP驗證
說明OCSP表示在線證書狀態協議,該協議用于向簽發證書的CA(Certificate Authority)中心發起查詢請求,檢查證書是否被吊銷。
客戶端證書的OCSP校驗是在客戶端發送消息時執行,如果證書已經吊銷,服務端會主動關閉連接。
服務端OCSP Stapling功能默認緩存時間是5分鐘至60分鐘之間,緩存過期后第一個訪問請求OCSP Stapling將不生效,直到重新獲取OCSP Stapling信息為止。
表 1. FC認證函數說明
參數類型
參數名稱
數據類型
是否必選
描述
請求參數
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返回值自動創建對應的設備。
FC認證函數返回參數示例:
{ "result":"true", "deviceName":"device_TH", "message":"" }
表 2. HTTPS認證參數說明
參數類型
參數名稱
數據類型
是否必選
描述
示例
請求方法
Method
String
是
請求方法取值POST。
POST Content-Type: application/json body:{ "username": "UN001", "password": "PW001", "certificateCommonName": "CN001" }
Header
Content-Type
String
是
HTTPS Header中定義數據的編碼格式,目前只支持
application/json
。若使用其他編碼格式,會返回參數錯誤。
請求參數Body
username
String
是
設備建連時上傳MQTT的username。
username支持英文字母、數字、短劃線(-)、下劃線(_)、at(@)、英文句號(.)和英文冒號(:),長度限制為4~32個字符。username在產品維度下不可重復。
password
String
是
設備建連時上傳MQTT的password。
password支持英文字母、數字、短劃線(-)、下劃線(_)、at(@)、英文句號(.)和英文冒號(:),長度限制為1~32個字符。
certificateCommonName
String
否
該參數為X.509證書規范中的commonName字段。使用X.509數字證書進行設備身份認證時,需上傳該參數。
返回參數Body
deviceName
String
是
認證成功時,username對應的設備名稱。
設備首次建連時,物聯網平臺會根據devicename返回值自動創建對應的設備。
body:{ "deviceName": "device_TH" }
完成證書配置,單擊完成。
重要物聯網平臺目前支持RSA、ECC和SM2、SM3、SM4國密算法的私有CA。
使用阿里云PCA服務
重要如果在上一步驟中開啟OSCP,無法使用阿里云PCA服務,只能手動輸入證書。
使用已有的PCA或創建新的PCA。PCA(Private Certificate Authority,即私有CA)服務的更多信息,請參見私有證書概述。
必須配置服務端證書和服務端證書私鑰。
如果開啟設備X.509證書認證,還需要配置設備端證書。
如果OCSP認證方式為服務端證書的OCSP驗證或客戶端+服務端證書的OCSP驗證,信任證書默認為服務端的根證書。
手動輸入
您可以使用自行簽發的CA證書。簽發自定義證書的方法,請參見簽發自定義證書。
重要以下配置的證書都為PEM格式。
配置服務端證書和服務端證書私鑰。
如果開啟設備X.509證書認證,還需要配置設備端根證書。
如果OCSP認證方式為服務端證書的OCSP驗證或客戶端+服務端證書的OCSP驗證,信任證書默認為服務端的根證書。
在云網關列表,查看云網關信息,包含云網關名稱、云網關ID、網關URL、狀態和關聯產品等。
重要您需保存云網關URL,對應設備連接物聯網平臺的MQTT接入域名需替換為該云網關URL。您可直接配置云網關URL為新接入域名,也可配置CNAME將接入域名解析到該云網關URL。
可選:編輯云網關
創建云網關成功后,在云網關列表,找到對應云網關,單擊右側操作欄的編輯,修改云網關名稱、證書信息、FC認證函數。
執行結果
創建云網關成功后,物聯網平臺會自動為云網關創建并關聯一個對應的產品,產品名稱為云網關+${云網關實例ID}
。您可在 頁面,查看新建的產品。
您可單擊產品列表右側操作欄的查看,在產品詳情頁面查看產品信息,默認配置如下圖所示。
后續步驟
三方認證的云網關創建成功后,設備首次建連時,物聯網平臺會根據三方認證服務的返回參數deviceName值自動創建對應的設備。
您可使用MQTT.fx工具模擬云網關設備接入物聯網平臺進行通信。具體操作,請參見設備使用MQTT.fx接入(阿里云FC認證)。
一方認證的云網關創建成功后,需您在物聯網平臺導入設備認證信息來創建云網關設備。具體操作,請參見批量添加設備。