全部產品
Search
文件中心

ApsaraMQ for MQTT:裝置認證管理

更新時間:Jul 31, 2025

雲Message QueueTT 版支援使用裝置認證進行用戶端的接入認證。本文介紹如何使用CA認證簽發裝置認證,並在雲Message QueueTT 版控制台管理裝置認證,包括查詢認證、啟用或登出認證以及刪除認證。

背景資訊

裝置認證是由CA根憑證簽發給用戶端裝置使用的數位憑證,用於用戶端和服務端串連時,服務端對用戶端進行安全認證。認證通過後服務端和用戶端可基於認證內的加密金鑰進行安全通訊,若認證不通過則服務端拒絕用戶端接入。

使用裝置認證認證時,必須保證簽發該裝置認證的CA認證已在雲Message QueueTT 版服務端中註冊。更多資訊,請參見註冊CA認證

用戶端裝置使用裝置認證進行接入認證時,服務端會根據登入的CA認證驗證裝置認證是否正確,若CA認證和裝置認證匹配成功,則用戶端認證通過,且系統會將該裝置認證自動註冊到服務端中。

使用限制

  • 僅鉑金版執行個體和專業版執行個體支援裝置認證管理功能。

  • 雲Message QueueTT 版僅支援對已在服務端註冊的裝置認證進行操作。

  • 裝置認證的SN序號必須唯一。

前提條件

使用CA認證簽發裝置認證

本操作以自簽名CA認證為例簽發裝置認證,自簽名CA認證產生步驟,請參見自簽CA認證

產生裝置認證

RSA演算法認證

  1. 準備設定檔。

    1. 建立一個名稱為client.csr.cfg的檔案,內容如下:

      說明

      [dn]內容需要根據您的實際需求修改。

      [req]
      default_bits = 2048
      prompt = no
      default_md = sha256
      distinguished_name = dn
      
      [dn]
      C=CN
      ST=ZJ
      L=HZ
      O=ALI
      OU=MQTT
      emailAddress=xxx@xxx
      CN=client-test
    2. 建立一個名稱為client.crt.cfg的檔案,內容如下:

      authorityKeyIdentifier=keyid,issuer
      basicConstraints=CA:FALSE
      keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment, keyCertSign
  2. 根據配置產生裝置認證私密金鑰和CSR檔案。

    • Mac:

      openssl req -new -sha256 -nodes -out client.csr -newkey rsa:2048 -keyout client.key -config <(cat client.csr.cfg)
    • Windows:

      openssl req -new -sha256 -nodes -out client.csr -newkey rsa:2048 -keyout client.key -config client.csr.cfg
  3. 產生裝置認證。

    openssl x509 -req -in client.csr -CA CA.crt -CAkey CA.key -CAcreateserial -out client.crt -days 500 -sha256 -extfile client.crt.cfg

ECC演算法認證

  1. 準備設定檔。

    1. 建立一個名稱為client.csr.cfg的檔案,內容如下:

      說明

      [dn]內容需要根據您的實際需求修改。

      [req]
      default_bits = 2048
      prompt = no
      default_md = sha256
      distinguished_name = dn
      
      [dn]
      C=CN
      ST=ZJ
      L=HZ
      O=ALI
      OU=MQTT
      emailAddress=xxx@xxx
      CN=client-test
    2. 建立一個名稱為client.crt.cfg的檔案,內容如下:

      authorityKeyIdentifier=keyid,issuer
      basicConstraints=CA:FALSE
      keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment, keyCertSign
  2. 執行如下命令,產生裝置認證的私密金鑰client.key

    openssl ecparam -out client.key -name prime256v1 -genkey
  3. 執行如下命令,產生裝置認證的client.csr

    • Mac:

      openssl req -new -sha256 -nodes -out client.csr -key client.key -config <(cat client.csr.cfg)
    • Windows:

      openssl req -new -sha256 -nodes -out client.csr -key client.key -config client.csr.cfg
  4. 執行如下命令,產生裝置認證。

    openssl x509 -req -in client.csr -CA CA.crt -CAkey CA.key -CAcreateserial -out client.crt -days 500 -sha256 -extfile client.crt.cfg
  5. 執行如下命令,將裝置認證私密金鑰的格式轉換為PKCS#8格式。

    openssl pkcs8 -topk8 -nocrypt -in client.key -out client_pkcs8.key
    重要

    使用代碼串連時參數deviceKyPath應該填寫client_pkcs8.key 的路徑,而不是client.key。

產生裝置認證的憑證鏈結

  1. 建立一個名稱為client_chain.crt的空的憑證鏈結檔案。

    touch client_chain.crt
  2. 將裝置認證內容複寫到憑證鏈結檔案中。

    cat client.crt >> client_chain.crt
  3. 將CA認證內容複寫到憑證鏈結檔案並將其追加到裝置認證內容後面。

    cat CA.crt >> client_chain.crt

您可以執行cat client_chain.crt命令查看裝置憑證鏈結內容。

    說明

    裝置認證需要與簽發的CA認證先產生憑證鏈結,才能用於串連到服務端。

    憑證鏈結產生實際上是將幾個認證的內容拼接到一起,順序為子級認證內容在上,父級認證內容在下。

查詢裝置認證

您可以查看指定執行個體下所有登入過的裝置認證,或根據認證SN序號進行精確尋找。

  1. 登入雲Message QueueTT 版控制台,並在左側導覽列單擊实例列表

  2. 在頂部功能表列選擇目標地區,然後在執行個體列表中單擊執行個體名稱進入实例详情頁面。

  3. 在左側導覽列選擇認證管理 > 裝置認證

    裝置認證頁面,顯示所有已在服務端註冊過的裝置認證。

  4. 在裝置認證列表上方的搜尋方塊中輸入裝置認證SN序號或CA認證SN序號查詢指定裝置認證。

    • 輸入裝置認證SN序號,查詢結果為該SN序號對應的唯一的裝置認證。

    • 輸入CA認證SN序號,查詢結果為該CA認證所簽發的且已在服務端註冊的所有裝置認證。

啟用或登出裝置認證

您可以通過啟用和登出操作修改認證的生效狀態。認證狀態包含啟用未啟用。裝置認證在服務端註冊後預設為啟用狀態。

  • 認證為啟用狀態:若您需要臨時禁用某個認證,可以將該認證登出,登出後認證不可用且狀態變為未啟用

  • 認證為未啟用狀態:若您要恢複某個認證,可以將該認證重新啟用,啟用後認證狀態變為啟用

在裝置認證列表中,選擇目標認證,在其操作列單擊登出啟用

刪除裝置認證

刪除裝置認證表示將指定的裝置認證的註冊資訊從服務端的儲存記錄中刪除,並非將認證內容直接刪掉。

裝置認證刪除後,用戶端使用該裝置認證進行接入認證,如果關聯的CA認證正確並有效,該裝置認證會被重新自動註冊到服務端,並通過認證。

  1. 在裝置認證列表中,選擇目標認證,在其操作列單擊刪除

  2. 在彈出的提示對話方塊中單擊確定