共用方式為


憑證生命週期和更新

重要

這是 Azure Sphere (舊版) 檔。 Azure Sphere(舊版)將於 2027 年 9 月 27 日淘汰,且使用者此時必須移轉至 Azure Sphere(整合式)。 使用位於 TOC 上方的版本選取器來檢視 Azure Sphere (整合式) 檔。

用戶端憑證金鑰組和 CA 憑證會定期到期。 您的網路基礎結構和裝置必須能夠處理憑證到期,並出示新的憑證,而不會失去連線能力。 用於RADIUS伺服器驗證的根CA憑證,以及用於裝置驗證的客戶端憑證,需要不同的方法來更新。

警告

因為憑證標識碼是全系統,因此新增憑證的 azsphere 命令或函式呼叫可能會覆寫先前命令或函數調用所新增的憑證,可能會導致網路連線失敗。 強烈建議您開發明確的憑證更新程式,並仔細選擇憑證標識碼。

如需 Azure Sphere 如何使用憑證標識碼的詳細資訊,請參閱 憑證 標識碼。

更新根 CA 憑證

CA 憑證是RADIUS伺服器上驗證憑證的根CA。 例如,如果 CA 憑證過期或伺服器變更的 PKI,例如,如果伺服器從不同的證書頒發機構單位取得新的根 CA,Azure Sphere 裝置就無法再驗證 RADIUS 驗證伺服器。 不過,裝置必須繼續運作。

在典型的無線網路上,無法執行「刀鋒」完全移轉:也就是說,當根 CA 變成無效時,您無法在確切的瞬間更新所有 Azure Sphere 裝置。 裝置可能在關鍵時刻脫機,或維護精確度可能會因安裝而異。 您的高階應用程式必須能夠在目前的根 CA 憑證到期或變更之前取得新的根 CA 憑證,如此一來,新的憑證就可供在需要時使用。

建議的方法是建立並啟用與現有網路具有相同設定但使用新根 CA 憑證的第二個網路。 當原始網路上現有的根 CA 憑證失敗時,OS 會自動嘗試連線到第二個網路。 然後,應用程式可以使用新的根 CA 取代原始網路上的憑證,並刪除第二個網路。 接著,裝置可以使用原始網路進行連線,而原始網路現在具有新的根 CA。 下圖摘要說明此方法。

更新根 CA 憑證的應用程式流程

高階應用程式應遵循下列步驟,順暢地處理根 CA 憑證的更新:

  1. 在正常作業中,應用程式會設定 類型 WifiConfig_Security_Wpa2_EAP_TLS為的 Network1。 此網路會連結至裝置的用戶端憑證和根 CA1,這是 RADIUS 伺服器的原始根 CA。

  2. 在 RootCA 到期前大約 90 天,裝置會收到雲端到裝置的通知,指出 RADIUS 伺服器的新根 CA 憑證很快就會需要。 通知可由網路管理員或其他操作員觸發;可能的通知機制包括 Azure IoT 中樞 或 Azure IoT Central 雲端到裝置訊息。

    網路管理員負責更新 RADIUS 伺服器上的憑證,並確保 Azure Sphere 裝置會適當地更新。

  3. 應用程式會取得新的根 CA,並呼叫 CertStore_InstallRootCACertificate ,將它儲存為根 CA2。

  4. 應用程式會呼叫 WifiConfig_AddDuplicateNetwork 來複製 Network1 組態,以建立新的網路 Network2。 然後,它會將根 CA2 連結到網路 2,並啟用 Network2。 如果裝置上已啟用 Network2 且可以連線到因特網,則如果 Network1 無法使用,裝置就會使用它。

  5. 應用程式會每天呼叫 WifiConfig_GetConnectedNetworkId ,以判斷裝置所連線的網路。

    如果連線網路的每日檢查失敗,則錯誤可能是伺服器或裝置端的憑證問題,或來自其他問題。 如需協助,請參閱 針對網路問題 進行疑難解答。

    如果裝置已連線到 Network1,這表示憑證尚未過期,且一切都正常運作。 應用程式會重複此步驟,直到裝置連線到 Network2 為止。

    如果裝置已連線到 Network2,這表示舊憑證已過期、RADIUS 伺服器上已設定更新的 PKI,且裝置可以使用 Root CA2 驗證伺服器。

  6. 當裝置與 Network2 正常運作時,應用程式會完成網路設定的變更:

更新客戶端憑證

用戶端憑證包含用來驗證 Azure Sphere 裝置的公開和私鑰組。 如同根 CA 憑證,用戶端憑證會不時過期,且裝置必須能夠顯示新的憑證。 您的高階應用程式負責在現有憑證到期之前取得新的憑證。 應用程式可以藉由呼叫 CertStore_GetCertificateNotAfter 來取得憑證到期的日期和時間。

下圖摘要說明此程式。 此模式可讓您的憑證更新程序代碼使用常數 憑證標識碼,例如 ClientCert1 和 ClientCert2,而不是為每個新憑證建立唯一的名稱。 此外,它不需要網路交換或用戶端憑證清除。

更新客戶端憑證的應用程式流程

高階應用程式應遵循下列步驟,順暢地處理用戶端憑證的更新:

  1. 在正常作業中,應用程式會設定 類型 WifiConfig_Security_Wpa2_EAP_TLS為的 Network1。 此網路會連結至裝置的用戶端憑證 (ClientCert1) 和 RADIUS 伺服器的根 CA。 在應用程式啟動更新程式之前,它會呼叫 WifiConfig_GetNetworkIdByConfigNameWifiConfig_GetConnectedNetworkId來確認裝置已連線到 Network1。 如果網路標識碼相符,應用程式可以確定它已連線到預定的網路。

  2. 應用程式會定期呼叫 CertStore_GetCertificateNotAfter ,以判斷用戶端憑證何時到期。 或者,應用程式可以將到期日儲存在可變記憶體中;不過,它仍應每天和每次重新啟動后檢查到期日。

    應用程式會比較到期日期和時間與目前的日期和時間。 如果憑證在預先決定的臨界值期間內到期,應用程式會取得新的憑證。 臨界值週期的長度是您選擇的。 最佳做法是,建議您在到期前至少四周取得新的憑證,以防裝置長時間脫機,或遇到重複的網路或伺服器問題。 您稍早檢查,必須解決任何問題的時間越多。

  3. 應用程式會從適當的憑證簽發者取得新的憑證。 憑證簽發者的選擇是局域網路管理員的責任。

  4. 應用程式會藉由呼叫 CertStore_InstallClientCertificate,將新的憑證儲存為 ClientCert2,並藉由呼叫 WifiConfig_SetClientCertStoreIdentifier 將其新增至 Network1 Wi-Fi 組態。

  5. 應用程式會藉由呼叫 WifiConfig_ReloadConfig 來重載Wi-Fi設定。 此步驟可讓裝置使用 ClientCert2,以用於網路連線。

  6. 檢查網路連線是否成功。

    • 成功連線表示 ClientCert2 現在有效。

    • 無法連線表示 ClientCert2 尚無效,或發生其他錯誤。

      • 如果憑證還無效,請繼續進行步驟 7,將網路設定傳回其原始狀態。
      • 如果發生其他錯誤,請參閱 針對網路問題 進行疑難解答,以取得協助並重試連線。
  7. 不論網路連線是否成功,呼叫 WifiConfig_ReloadConfig 重載Wi-Fi組態。 如果連線成功,重載的組態將會使用由 ClientCert2 取代的新 ClientCert1。 如果連線失敗,重載的組態將會使用 ClientCert1。