【IoT平臺技術對接分享】如何上傳正確的消息推送證書
消息推送應用實現消息推送的接口,部署證書,同時上傳根證書到平臺。
目前消息推送失敗,很大一部分原因是證書上傳不對。推薦小伙伴們使用下面的方法導出證書。
====================~~概念掃盲分割線~~====================
推送:平臺調用應用服務器的restful接口將數據主動發給北向應用(這些restful接口是平臺在北向接口文檔的消息推送章節提前定好,由應用服務器實現的。)
回調地址:應用實現消息推送的restful接口時,可以自定義接口的URL,這些URL就是回調地址
訂閱:應用服務器調用平臺訂閱接口,將回調地址設置給平臺。
====================~~概念掃盲分割線~~====================
1、使用IE瀏覽器打開回調地址(無論回調地址有沒有應用界面)
如果是自簽名的證書,會出現如下提示,選擇繼續:
比如這是我本地的應用服務,回調地址是https://XX.XX.XX.XX:8099/v1.0.0/messageReceiver,由于沒有寫GET方法,所以會提示405,不用管這個報錯,只要能查看證書即可。
說明:如果打不開具體看提示什么錯誤,可能是服務沒有啟起來,或者服務有問題,也可能是使用了雙向認證,得在瀏覽器中導入客戶端證書才能打開
2、查看證書
IE瀏覽器:
谷歌瀏覽器:
如果使用的不是自簽名證書,則不會報證書錯誤,(以百度為例):
在證書路徑下可以看到有3級證書:
當前查看的證書是最后一級:
3、導出證書
在詳細信息頁簽中選擇復制到文件,點擊下一步(如果按鈕是灰的點不了,就用管理員權限運行ie再試一下)
注意選擇Base64編碼格式:
然后下一步,選擇一個路徑保存導出的證書,最后點擊完成:
4、查看證書文本內容證書導出后可以使用文本編輯器打開:
5、導出上級證書,合并證書
上面4個步驟只導出最后一級證書,如果應用部署在別人提供的云上,一般會有多級證書,點擊上一級證書,再點擊查看證書,這時證書的頒發者和使用者會隨之改變,重復步驟1-4,再導出這一級證書。
有多少級證書就導出多少個證書。(最下面的baidu.com可以不導出上傳,但加上也沒關系,可以多傳不能少傳)
注意:最上面一級證書是根證書,頒發者和使用者是一樣的。
如果最上面一級的證書的頒發者和使用者不是一樣的話,那么說明這個證書不是根證書,則還有證書沒有部署到應用上,這時,要么得把根證書(這時瀏覽器上查看不到的根證書)一起加到導出的證書中;要么得調整應用部署的證書,再重新導出證書。
把導出的證書都放到一個文件里,頭尾相連(如下圖所示):
將證書文件后綴改為pem,就可以上傳到平臺上。
有兩個地方可以上傳證書:
1、開發者portal->找到對應的應用->對接信息->應用安全->證書管理
2、SP portal->應用管理->在應用列表中找到對應的應用->應用定義(或應用詳情)->消息推送->將推送協議修改為HTTPS->再上傳證書
P.S. 追加證書校驗方法,使用curl命令可以測試證書與回調接口是否匹配:
單向認證:
curl -H "Content-Type:application/json" -X POST -d '{"notifyType":"deviceDataChanged"}' https://127.0.0.1:443/test -v --cacert application_ca.pem
其中https://127.0.0.1:443/test需要換成應用服務器的回調地址,application_ca.pem就是上面使用瀏覽器導出的證書(即應用服務器根證書)
雙向認證:
curl -H "Content-Type:application/json" -X POST -d '{"notifyType":"deviceDataChanged"}' https://127.0.0.1:443/test -v --cacert application_ca.pem --cert client.CertwithKey.pem
其中https://127.0.0.1:443/test需要換成應用服務器的回調地址,application_ca.pem就是上面使用瀏覽器導出的證書(即應用服務器根證書);client.CertwithKey.pem是客戶端證書,只要是應用服務器信任的根證書簽發的子證書就能校驗通過,但對證書格式有要求。可以將平臺提供的ca.pem加入應用服務器的證書信任鏈中,再使用平臺提供的outgoing.CertwithKey.pem。
(以下是單向認證結果示例)
IoT 證書
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。