Životní cyklus a prodloužení platnosti certifikátu
Důležité
Toto je dokumentace k Azure Sphere (starší verze). Azure Sphere (starší verze) se vyřazuje 27. září 2027 a uživatelé musí do této doby migrovat do Azure Sphere (integrované). K zobrazení dokumentace k Azure Sphere (integrované) použijte selektor verzí umístěný nad obsahem.
Páry klíče certifikátu klienta a certifikáty certifikační autority pravidelně vyprší. Vaše síťová infrastruktura a zařízení musí být schopné zpracovat vypršení platnosti certifikátu a prezentovat nový certifikát bez ztráty připojení. Certifikáty kořenové certifikační autority, které se používají při ověřování serveru RADIUS, a klientské certifikáty, které se používají při ověřování zařízení, vyžadují různé přístupy k aktualizaci.
Upozornění
Vzhledem k tomu, že ID certifikátů jsou systémová, příkaz azsphere nebo volání funkce, které přidává nový certifikát, může přepsat certifikát přidaný dřívějším příkazem nebo voláním funkce, což může způsobit selhání síťového připojení. Důrazně doporučujeme vyvinout jasné postupy aktualizace certifikátů a pečlivě zvolit ID certifikátů.
Další informace o tom, jak Azure Sphere používá ID certifikátů, najdete v tématu ID certifikátů.
Aktualizace certifikátu kořenové certifikační autority
Certifikát certifikační autority je kořenová certifikační autorita ověřovacího certifikátu na serveru RADIUS. Pokud platnost certifikátu certifikační autority vyprší nebo se změní infrastruktura veřejných klíčů (například pokud server získá novou kořenovou certifikační autoritu z jiné certifikační autority), zařízení Azure Sphere už nemůžou ověřit ověřovací server RADIUS. Zařízení ale musí dál fungovat.
V typické bezdrátové síti není možné provést "nůž-hrana" přímé; To znamená, že nemůžete aktualizovat všechna zařízení Azure Sphere přesně v okamžiku, kdy se kořenová certifikační autorita stane neplatnou. Zařízení můžou být v kritickém okamžiku offline nebo přesnost uchovávání času se může v různých instalacích lišit. Vaše aplikace vysoké úrovně musí mít možnost získat nový certifikát kořenové certifikační autority před vypršením platnosti aktuální certifikační autority nebo změnami, aby byl nový certifikát v případě potřeby připravený k použití.
Doporučeným přístupem je vytvoření a povolení druhé sítě, která má stejnou konfiguraci jako stávající síť, ale používá nový certifikát kořenové certifikační autority. Pokud existující certifikát kořenové certifikační autority selže v původní síti, operační systém se automaticky pokusí připojit k druhé síti. Aplikace pak může nahradit certifikát v původní síti novou kořenovou certifikační autoritou a odstranit druhou síť. Zařízení se pak může připojit pomocí původní sítě, která teď má novou kořenovou certifikační autoritu. Následující obrázek shrnuje tento přístup.
Aplikace vysoké úrovně by měla postupovat podle těchto kroků k bezproblémovému zpracování aktualizace kořenového certifikátu certifikační autority:
V rámci normálního provozu aplikace nakonfiguruje typ Network1
WifiConfig_Security_Wpa2_EAP_TLS
. Tato síť je propojená s klientským certifikátem pro zařízení a kořenovou ca1, což je původní kořenová certifikační autorita pro server RADIUS.Přibližně 90 dní před vypršením platnosti rootCA obdrží zařízení oznámení typu cloud-zařízení, že se brzy bude vyžadovat nový certifikát kořenové certifikační autority pro server RADIUS. Oznámení může aktivovat správce sítě nebo jiný operátor; mezi možné mechanismy oznámení patří zpráva Azure IoT Hub nebo Azure IoT Central typu cloud-zařízení.
Správce sítě zodpovídá za aktualizaci certifikátu na serveru RADIUS a za zajištění správné aktualizace zařízení Azure Sphere.
Aplikace získá novou kořenovou certifikační autoritu a zavolá CertStore_InstallRootCACertificate , aby ji uložila jako kořenovou CA2.
Aplikace vytvoří novou síť Network2 zavoláním WifiConfig_AddDuplicateNetwork duplikováním konfigurace Network1. Potom pro propojení kořenové CA2 se sítí 2 a povolí síť 2. Pokud je na zařízení povolená síť Network2 a může se připojit k internetu, zařízení ho použije, pokud síť Network1 není k dispozici.
Aplikace se každý den dotazuje voláním WifiConfig_GetConnectedNetworkId , abyste zjistili, ke které síti je zařízení připojené.
Pokud se denní kontrola připojené sítě nezdaří, může dojít k chybě z problému s certifikátem na straně serveru nebo zařízení nebo z nějakého jiného problému. Nápovědu najdete v tématu Řešení potíží se sítí .
Pokud je zařízení připojené k síti Network1, znamená to, že ještě nevypršela platnost certifikátu a všechno funguje správně. Aplikace tento krok opakuje, dokud se zařízení nebude připojovat k síti Network2.
Pokud je zařízení připojené k síti 2, znamená to, že vypršela platnost starého certifikátu, aktualizovaná infrastruktura veřejných klíčů je nastavená na serveru RADIUS a zařízení může ověřit server pomocí kořenové certifikační autority 2.
Když zařízení správně pracuje se sítí Network2, aplikace dokončí změny konfigurace sítě:
- Přejmenuje kořenovou CA2 na kořenovou CA1 voláním CertStore_MoveCertificate. Tato funkce přepíše prošlou kořenovou ca1 obsahem kořenové certifikační autority 2.
- Znovu načte konfiguraci Network1 voláním WifiConfig_ReloadConfig. Konfigurace Network1 teď odpovídá aktuální síti.
- Odstraní konfiguraci Network2 voláním WifiConfig_ForgetNetworkById.
Aktualizace klientského certifikátu
Klientský certifikát se skládá z páru veřejného a privátního klíče, který slouží k ověření zařízení Azure Sphere. Stejně jako certifikát kořenové certifikační autority vyprší platnost klientského certifikátu od času a zařízení musí být schopné předložit nový certifikát. Vaše aplikace vysoké úrovně zodpovídá za získání nového certifikátu před vypršením platnosti existujícího certifikátu. Aplikace může získat datum a čas vypršení platnosti certifikátu voláním CertStore_GetCertificateNotAfter.
Následující obrázek shrnuje tento postup. Tento vzor umožňuje kódu aktualizace certifikátu používat konstantní ID certifikátů, jako jsou ClientCert1 a ClientCert2, místo vytvoření jedinečného názvu pro každý nový certifikát. Kromě toho nevyžaduje žádné prohození sítě ani vyčištění klientského certifikátu.
Aplikace vysoké úrovně by měla postupovat podle těchto kroků k bezproblémovému zpracování aktualizace klientského certifikátu:
V rámci normálního provozu aplikace nakonfiguruje typ Network1
WifiConfig_Security_Wpa2_EAP_TLS
. Tato síť je propojená s klientským certifikátem pro zařízení (ClientCert1) a kořenovou certifikační autoritou pro server RADIUS. Než aplikace spustí postup aktualizace, ověří, že je zařízení připojené k síti Network1 voláním WifiConfig_GetNetworkIdByConfigName a WifiConfig_GetConnectedNetworkId. Pokud se id sítě shodují, aplikace si může být jistá, že je připojená k zamýšlené síti.Aplikace volá CertStore_GetCertificateNotAfter v pravidelných intervalech, aby určila, kdy vyprší platnost klientského certifikátu. Případně může aplikace uložit datum vypršení platnosti do proměnlivého úložiště; přesto by se mělo kontrolovat datum vypršení platnosti každý den a po každém restartování.
Aplikace porovná datum a čas vypršení platnosti s aktuálním datem a časem. Pokud platnost certifikátu vyprší v rámci předem určeného prahového období, aplikace získá nový certifikát. Délka prahového období je vaší volbou. Osvědčeným postupem je získat nový certifikát alespoň čtyři týdny před vypršením platnosti v případě, že je zařízení po dlouhou dobu offline nebo dochází k opakovaným problémům se sítí nebo serverem. Čím dříve zkontrolujete, tím více času budete muset vyřešit všechny problémy.
Aplikace získá nový certifikát od příslušného vystavitele certifikátu. Volba vystavitele certifikátu je odpovědností správce místní sítě.
Aplikace uloží nový certifikát jako ClientCert2 voláním CertStore_InstallClientCertificate a přidá ho do konfigurace Wi-Fi Network1 voláním WifiConfig_SetClientCertStoreIdentifier.
Aplikace znovu načte konfiguraci Wi-Fi voláním WifiConfig_ReloadConfig. Tento krok zpřístupňuje ClientCert2 zařízení pro použití v síťových připojeních.
Zkontrolujte, jestli bylo síťové připojení úspěšné.
Úspěšné připojení znamená, že clientCert2 je teď platný.
Přejmenujte ClientCert2 na ClientCert1 voláním CertStore_MoveCertificate.
Zakažte network1 voláním WifiConfig_SetNetworkEnabled nastavit stav Povoleno sítě na false a potom znovu povolit Network1 voláním WifiConfig_SetNetworkEnabled nastavit stav Povoleno na .
true
Zakázáním a opětovným povolením konfigurace zpřístupníte obsah přejmenovaného certifikátu pro aplikaci.
Selhání připojení znamená, že clientCert2 ještě není platný nebo že došlo k nějaké jiné chybě.
- Pokud certifikát ještě není platný, pokračujte krokem 7 a vraťte konfiguraci sítě do původního stavu.
- Pokud došlo k nějaké jiné chybě, přečtěte si téma Řešení potíží se sítí , kde najdete nápovědu a zkuste připojení zopakovat.
Bez ohledu na to, jestli bylo síťové připojení úspěšné, znovu načtěte konfiguraci Wi-Fi voláním WifiConfig_ReloadConfig. Pokud bylo připojení úspěšné, znovu načtená konfigurace použije nový ClientCert1, který byl nahrazen klientem ClientCert2. Pokud připojení selhalo, znovu načtená konfigurace bude používat ClientCert1.