共用方式為


在應用程式中設定 EAP-TLS 網路

重要

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

您可以在高階應用程式中設定 EAP-TLS,或使用 azsphere 命令手動設定。 若要設定並連線到網路,應用程式會使用 CertstoreWifiConfig API。

需求

若要設定 EAP-TLS 網路,您的高階應用程式必須包含適當的頭檔、在其應用程式指令清單啟用必要的功能,以及存取驗證所需的憑證。

標頭檔

您的應用程式必須包含下列標頭:

#include <applibs/wificonfig.h>

如果應用程式呼叫 CertStore API 來管理憑證,它也必須包含 CertStore 標頭。 此標頭不需要使用 WifiConfig 函式,例如 擷取 憑證資訊的WifiConfig_GetRootCACertStoreIdentifier。

#include <applibs/certstore.h>

應用程式資訊清單

應用程式指令清單必須啟用 EnterpriseWiFiConfig 功能,才能設定 EAP-TLS 網路。 它也必須具備 WifiConfig 功能,才能使用 無法管理 EAP-TLS 功能的 WifiConfig_* 函式。 最後,如果應用程式也管理憑證,則必須啟用 CertStore 功能。

請勿啟用應用程式不需要的功能;這會造成安全性風險。 如果憑證會手動更新,請勿指定 CertStore。 只有在應用程式負責在裝置上儲存和管理憑證時,才使用此功能。

下列範例示範如何在 app_manifest.json 檔案中設定這三項功能:

"Capabilities": {
        "WifiConfig" : true,
        "EnterpriseWiFiConfig" : true,
        "CertStore" : true
    }

憑證

裝置的客戶端憑證必須可在裝置上使用。 此外,如果EAP-TLS 網路已設定為相互驗證,則您網路的RADIUS伺服器的根CA憑證也必須安裝在裝置上。 這兩個憑證都必須採用 .pem 格式,即 PKCS1 或 PKCS8。 請參閱 EAP-TLS 憑證取得和部署 ,以了解憑證及其取得位置。

安裝憑證

在您的應用程式可以設定 EAP-TLS 網路之前,它必須能夠存取要用於驗證的根 CA 和客戶端憑證。 取得和部署 EAP-TLS 網路的 憑證說明取得憑證的策略,並將其載入裝置作為 PEM 檔案。 取得和部署憑證是您的責任;請洽詢您的網路管理員以取得詳細數據。

憑證在裝置上之後,應用程式就可以安裝憑證以供使用。 憑證範例示範如何安裝它們。 以下是基本步驟:

  • 請確定證書存儲中有足夠的空間。 證書存儲空間有限,因此應用程式應該先呼叫 CertStore_GetAvailableSpace ,再嘗試安裝憑證。 如果沒有足夠的空間,應用程式應該刪除現有的憑證,為新的憑證騰出空間。 憑證空間限制為 24 KiB。

  • 若要安裝根 CA 憑證,請呼叫 CertStore_InstallRootCACertificate。 應用程式會提供憑證內容的指標,以及稍後可用來作為憑證易記名稱的標識碼。 如果網路啟用相互驗證,則需要根 CA 憑證。 標識元可以包含大寫字母、小寫字母、數位 0-9、句號 (.)、連字元 (-) 和底線 (_)。 標識元的最大長度為 16 個字元。

  • 若要安裝客戶端憑證,請呼叫 CertStore_InstallClientCertificate。 如同跟根 CA 憑證一樣,應用程式會提供憑證內容的指標,以及稍後可以使用的標識碼做為憑證的易記名稱。應用程式也必須提供私鑰,如果金鑰已加密,則加密密碼。

若要更新憑證,應用程式可以使用 CertStore_MoveCertificate 函式。 此函式會以來源憑證的內容覆寫現有目的地憑證的內容,將一個憑證移至另一個憑證。 這兩個憑證都必須已安裝在證書存儲中。 憑證生命週期和更新 概述更新憑證的策略,同時避免網路停機。

設定及設定 EAP-TLS 網路

Wifi_HighLevelApp範例示範如何建立、設定及啟用 EAP-TLS 網路。 此範例假設憑證已在證書存儲中,如安裝憑證中所述

若要設定和設定網路,應用程式應該遵循下列基本步驟:

變更 EAP-TLS 網路的屬性

應用程式可以呼叫原本用來設定這些函式的相同函式,如設定和設定EAP-TLS 網路中所述,來變更網路的屬性。

變更屬性之後,應用程式不僅必須呼叫 WifiConfig_PersistConfig 來儲存組態,而且必須呼叫 WifiConfig_ReloadConfig 立即更新網路。 當應用程式更新憑證時,這特別重要。

刪除EAP-TLS 網路

應用程式可以藉由呼叫 WifiConfig_ForgetNetworkById 或 WifiConfig_ForgetAllNetworks 來刪除網路。

WifiConfig_ForgetNetworkById如果網路已連線,並從裝置中移除網路,就會中斷連線。 不過,它不會更新Wi-Fi設定,因此變更不會在重新啟動時保存。 應用程式必須呼叫 WifiConfig_PersistConfig ,才能永久移除。

WifiConfig_ForgetAllNetworks中斷連線的網路,並從裝置移除所有網路。 此變更會在重新啟動時持續發生。

範例

  • 憑證高階應用程式 - 示範如何在 Azure Sphere 高階應用程式中使用和管理憑證。
  • Wifi_HighLevelApp - 示範如何連線到Wi-Fi網路,並檢查MT3620裝置上的網路狀態。

注意

下列範例來自 Azure Sphere 資源庫,這是來自 Microsoft 的未協調軟體和硬體範例集合。 如需詳細資訊,請參閱 Azure Sphere 資源庫

  • 使用 Azure Sphere 的 EAP-TLS 解決方案 - 示範如何將 Azure Sphere 裝置連線到 EAP-TLS 網路。