客戶端證書認證
云消息隊列 MQTT 版支持基于X.509證書的雙向認證,分別通過服務器證書和設備證書完成服務端和客戶端的認證,保證客戶端和服務端通信鏈路的安全性和可靠性。本文介紹客戶端證書認證的原理和實現方式。
使用限制
單向認證:所有類型實例均支持。
雙向認證:僅鉑金版、專業版實例支持。
單向認證
客戶端認證服務端
云消息隊列 MQTT 版客戶端對服務端的認證通過服務器證書完成。客戶端發起連接請求時,服務端的證書會隨著請求握手自動下發給客戶端,客戶端將驗證服務器證書的正確性,若驗證通過則允許服務端連接。
操作步驟
本操作僅支持鉑金版、專業版實例切換認證時使用,其他類型實例默認支持單向認證無需進行操作。
登錄云消息隊列 MQTT 版控制臺,并在左側導航欄單擊實例列表。
在頂部菜單欄選擇目標地域,然后在實例列表中單擊實例名稱進入實例詳情頁面。
在左側導航欄選擇
。單擊單向認證,在彈出的提示對話框中仔細閱讀提示信息并單擊確認,等待服務器重啟完成。
驗證
您可以使用以下代碼示例進行驗證:
語言 | 下載地址 |
Java | |
Python | |
C | |
.NET | |
JavaScript | |
iOS |
雙向認證
客戶端認證服務端
云消息隊列 MQTT 版客戶端對服務端的認證通過服務端器書完成。客戶端將驗證服務器證書的正確性,若驗證通過則允許與服務端建立鏈接。服務器證書需要您自行購買或自行簽發后,托管到數字證書管理服務,并通過服務器證書重啟云消息隊列 MQTT 版服務。
服務端認證客戶端
云消息隊列 MQTT 版服務端對客戶端的認證通過對設備證書的認證完成。客戶端發起請求連接時,會與服務端按照TLS 1.2協議進行交互。交互過程中客戶端會將設備證書傳遞到服務端,服務端將根據客戶端提前注冊的CA證書驗證該設備證書的正確性,若驗證通過則允許客戶端連接服務端。
云消息隊列 MQTT 版服務端對客戶端的證書認證流程如下:
客戶端發起TCP連接請求,通過MQTT協議將攜帶的設備證書發送給云消息隊列 MQTT 版服務端。
服務端收到設備證書后,判斷該設備證書是否已在服務端注冊。
是:設備證書已注冊,繼續判斷設備證書狀態。
是:設備證書已激活,判斷設備證書是否認證通過,下一步,步驟5。
否:設備證書未激活。斷開連接,流程結束。
否:設備證書未注冊,則繼續匹配CA證書。下一步,步驟3。
服務端根據設備證書攜帶的信息匹配相關的CA證書,判斷CA證書是否在服務端注冊。
是:判斷CA證書狀態。下一步,步驟4。
否:斷開連接,流程結束。
判斷CA證書是否激活。
是:CA證書已激活。下一步,步驟5。
否:CA證書未激活。斷開連接,流程結束。
根據服務端注冊的CA證書對客戶端攜帶的設備證書進行認證,判斷認證是否通過。
是:設備證書認證成功。下一步,步驟6。
否:認證失敗。斷開連接,流程結束。
客戶端設備證書認證通過,服務端允許客戶端接入,雙方開始通信,等待消息收發。
操作步驟
本操作僅支持鉑金版、專業版實例。
獲取并注冊CA證書。詳情請參見:CA證書管理。
CA證書可以向證書頒發機構申請或自己創建。CA證書可用于簽發設備證書、服務器證書、驗證證書。
CA證書必須在云消息隊列 MQTT 版服務端中注冊才能用于驗證設備證書的正確性。
簽發服務器證書,并托管到數字證書管理服務,然后通過服務器證書重啟服務。詳情請參見:服務器證書管理。
簽發設備證書。由CA證書簽發,每個設備的設備證書建議全局唯一,詳情請參見:使用CA證書簽發設備證書。
設備證書必須在服務端進行注冊,才能用于證書認證。
客戶端設備證書注冊流程如下:客戶端第一次連接服務端時,攜帶的設備證書未在服務端注冊過,服務端支持根據設備證書信息匹配對應的CA證書,并將設備證書自動注冊到服務端中。后續客戶端請求時,服務端可直接對設備證書進行認證,無需再匹配CA證書。
驗證
您可以使用以下代碼示例進行驗證:
語言 | 下載地址 |
Java | |
Python | |
C | |
.NET | |
JavaScript | |
iOS |
相關操作
OpenAPI
CA證書管理
RegisterCaCertificate:注冊CA證書。
ActiveCaCertificate:激活CA證書。
InactivateCaCertificate:注銷CA證書。
ListCaCertificate:查詢所有CA證書。
GetCaCertificate:查詢指定CA證書。
GetRegisterCode:獲取CA證書注冊碼。
DeleteCaCertificate:刪除CA證書。
設備證書管理
ActiveDeviceCertificate:激活設備證書。
InactivateDeviceCertificate:注銷設備證書。
ListDeviceCertificate:查詢所有設備證書。
ListDeviceCertificateByCaSn:查詢指定設備證書。
GetDeviceCertificate:獲取設備證書詳細信息。
DeleteDeviceCertificate:刪除設備證書。