從廠商云服務(wù)端獲取證書(shū)
本方案不在設(shè)備上燒錄設(shè)備證書(shū),而是設(shè)備上電聯(lián)網(wǎng)后,向廠商服務(wù)器發(fā)起請(qǐng)求,獲取設(shè)備證書(shū)(ProductKey、DeviceName和DeviceSecret)。本文介紹廠商云服務(wù)端開(kāi)發(fā)方案。
設(shè)備獲取設(shè)備證書(shū)的方案介紹,請(qǐng)參見(jiàn)獲取設(shè)備證書(shū)方案概述。
原理
本方案中,需要部署一個(gè)設(shè)備證書(shū)分發(fā)服務(wù)器,開(kāi)發(fā)相應(yīng)的服務(wù)端API和設(shè)備信息數(shù)據(jù)庫(kù)表,用于設(shè)備請(qǐng)求獲取設(shè)備證書(shū)。
證書(shū)分發(fā)服務(wù)器收到來(lái)自設(shè)備的獲取證書(shū)請(qǐng)求時(shí),調(diào)用上述API。該API的業(yè)務(wù)邏輯為:根據(jù)請(qǐng)求中的設(shè)備標(biāo)識(shí)查詢?cè)O(shè)備信息數(shù)據(jù)表,根據(jù)查詢結(jié)果,進(jìn)行以下后續(xù)操作。
沒(méi)有查到傳入的設(shè)備標(biāo)識(shí),則返回設(shè)備非法錯(cuò)誤。
有對(duì)應(yīng)的設(shè)備標(biāo)識(shí),且已有設(shè)備證書(shū),則返回設(shè)備證書(shū)。
有對(duì)應(yīng)的設(shè)備標(biāo)識(shí),但沒(méi)有設(shè)備證書(shū),則調(diào)用物聯(lián)網(wǎng)平臺(tái)API RegisterDevice注冊(cè)設(shè)備身份,獲取證書(shū)后,再發(fā)送給設(shè)備。
設(shè)備獲得證書(shū)之后,再使用該證書(shū)連接阿里云物聯(lián)網(wǎng)平臺(tái)。
參與該過(guò)程的各個(gè)角色的時(shí)序圖如下所示。
設(shè)備需要能自動(dòng)獲取IP地址,并連接您的證書(shū)分發(fā)服務(wù)器。
證書(shū)分發(fā)服務(wù)器由您自行設(shè)計(jì)實(shí)現(xiàn)。
您需要確保設(shè)備連接到證書(shū)分發(fā)服務(wù)器的安全性和可靠性。
服務(wù)器API設(shè)計(jì)建議
建議您按以下方法設(shè)計(jì)該API。
請(qǐng)求參數(shù):
參數(shù)
說(shuō)明
deviceId
設(shè)備在您的系統(tǒng)中的唯一標(biāo)識(shí)。自定義,可以是設(shè)備MAC或者SN等。
返回參數(shù):
參數(shù)
說(shuō)明
productKey
對(duì)應(yīng)物聯(lián)網(wǎng)平臺(tái)頒發(fā)的設(shè)備證書(shū)的ProductKey。
deviceName
對(duì)應(yīng)物聯(lián)網(wǎng)平臺(tái)頒發(fā)的設(shè)備證書(shū)的DeviceName。
deviceSecret
對(duì)應(yīng)物聯(lián)網(wǎng)平臺(tái)頒發(fā)的設(shè)備證書(shū)的DeviceSecret。
設(shè)備信息數(shù)據(jù)表設(shè)計(jì)建議
建議您按以下方法設(shè)計(jì)設(shè)備信息數(shù)據(jù)表。
表格屬性:
表格屬性 | 建議取值 |
數(shù)據(jù)表名稱(chēng) | device_table |
數(shù)據(jù)生命周期 | -1 |
最大數(shù)據(jù)版本 | 1 |
數(shù)據(jù)有效版本偏差 | 86400 |
主鍵 | deviceId,字符串(String) ,分區(qū)鍵。 |
數(shù)據(jù)字段:
字段 | 說(shuō)明 |
deviceId | 設(shè)備唯一標(biāo)識(shí)。自定義,可以是設(shè)備MAC或者SN等。 |
registerTime | 設(shè)備注冊(cè)時(shí)間。 |
activateTime | 設(shè)備激活時(shí)間。 |
productKey | 對(duì)應(yīng)物聯(lián)網(wǎng)平臺(tái)頒發(fā)的設(shè)備證書(shū)的ProductKey。 |
deviceName | 對(duì)應(yīng)物聯(lián)網(wǎng)平臺(tái)頒發(fā)的設(shè)備證書(shū)的DeviceName。 |
deviceSecret | 對(duì)應(yīng)物聯(lián)網(wǎng)平臺(tái)頒發(fā)的設(shè)備證書(shū)的DeviceSecret。 |
IotId | 物聯(lián)網(wǎng)平臺(tái)為該設(shè)備頒發(fā)的設(shè)備ID,該設(shè)備在物聯(lián)網(wǎng)平臺(tái)上的唯一標(biāo)識(shí)。 |