Životní cyklus a prodloužení platnosti certifikátu
Platnost párů klientských certifikátů a certifikátů certifikační autority pravidelně vyprší. Síťová infrastruktura a zařízení musí být schopné zpracovat vypršení platnosti certifikátu a předložit 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.
Pozor
Vzhledem k tomu, že ID certifikátů jsou pro celý systém, příkaz az sphere 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 vyprší platnost certifikátu certifikační autority nebo se změní infrastruktura veřejných klíčů serveru ( například pokud server získá novou kořenovou certifikační autoritu od jiné certifikační autority), zařízení Azure Sphere už nemůžou ověřovací server RADIUS ověřovat. Zařízení ale musí dál fungovat.
V typické bezdrátové síti není možné provést "ostří nože" 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 se přesnost časovače může v jednotlivých instalacích lišit. Aplikace vysoké úrovně musí být schopna získat nový certifikát kořenové certifikační autority před vypršením platnosti nebo změnami aktuálního certifikátu, aby byl nový certifikát v případě potřeby připravený k použití.
Doporučeným přístupem je vytvořit a povolit druhou síť, která má stejnou konfiguraci jako stávající síť, ale používá nový certifikát kořenové certifikační autority. Pokud stávají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. Tento přístup shrnuje následující obrázek.
Aplikace vysoké úrovně by měla při bezproblémovém zpracování aktualizace certifikátu kořenové certifikační autority postupovat následovně:
V rámci normálního provozu aplikace nakonfiguruje síť Network1 typu
WifiConfig_Security_Wpa2_EAP_TLS
. Tato síť je propojená s klientským certifikátem zařízení a s kořenovou certifikační autoritou 1, což je původní kořenová certifikační autorita pro server RADIUS.Přibližně 90 dní před vypršením platnosti kořenové certifikační autority obdrží zařízení oznámení 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ří Azure IoT Hub nebo zpráva azure IoT Central 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 certifikační autoritu 2.
Aplikace vytvoří novou síť Network2 zavoláním WifiConfig_AddDuplicateNetwork duplikováním konfigurace Network1. Potom prováže kořenovou ca2 se sítí 2 a povolí síť Network2. Pokud je na zařízení povolená síť Network2 a může se připojit k internetu, zařízení ji použije, pokud není dostupná síť Network1.
Aplikace se každý den dotazuje voláním WifiConfig_GetConnectedNetworkId , aby zjistila, ke které síti je zařízení připojené.
Pokud každodenní kontrola připojené sítě selže, může být příčinou chyby problém s certifikátem na straně serveru nebo zařízení nebo jiný problém. 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 platnost certifikátu ještě nevypršela a všechno funguje správně. Aplikace tento krok opakuje, dokud se zařízení připojí k síti Network2.
Pokud je zařízení připojené k síti Network2, znamená to, že vypršela platnost starého certifikátu, na serveru RADIUS je nastavená aktualizovaná infrastruktura veřejných klíčů a zařízení může ověřit server pomocí kořenové certifikační autority CA2.
Když zařízení funguje správně se sítí Network2, aplikace dokončí změny konfigurace sítě:
- Přejmenuje kořenovou CA2 na Kořenovou CA1 zavoláním CertStore_MoveCertificate. Tato funkce přepíše prošlou kořenovou certifikační autoritu CA1 obsahem kořenové ca2.
- Znovu načte konfiguraci sítě 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ý se používá k ověření zařízení Azure Sphere. Podobně jako u certifikátu kořenové certifikační autority vyprší čas od času platnost klientského certifikátu 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 stávají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 model umožňuje, aby kód aktualizace certifikátu používal konstantní ID certifikátů, jako je ClientCert1 a ClientCert2, místo vytváření jedinečného názvu pro každý nový certifikát. Kromě toho nevyžaduje žádné prohození sítě ani čištění klientských certifikátů.
Aplikace vysoké úrovně by měla při bezproblémovém zpracování aktualizace klientského certifikátu postupovat následovně:
V rámci normálního provozu aplikace nakonfiguruje síť Network1 typu
WifiConfig_Security_Wpa2_EAP_TLS
. Tato síť je propojená s klientským certifikátem zařízení (ClientCert1) a s kořenovou certifikační autoritou serveru RADIUS. Než aplikace spustí postup aktualizace, ověří, že je zařízení připojené k síti Network1, a to zavolá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 v pravidelných intervalech volá CertStore_GetCertificateNotAfter , 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ě; Datum vypršení platnosti by však měl kontrolovat 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ší během předem stanoveného prahového období, aplikace získá nový certifikát. Délka prahového období je vaše volba. Jako osvědčený postup doporučujeme 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 dojde k opakovaným problémům se sítí nebo serverem. Čím dříve to zkontrolujete, tím více času budete potřebovat k vyřešení jakýchkoli problémů.
Aplikace získá nový certifikát od příslušného vystavitele certifikátu. Za volbu vystavitele certifikátu zodpovídá správce místní sítě.
Aplikace uloží nový certifikát jako ClientCert2 zavoláním CertStore_InstallClientCertificate a přidá ho voláním WifiConfig_SetClientCertStoreIdentifier do konfigurace Wi-Fi Network1.
Aplikace znovu načte konfiguraci Wi-Fi voláním WifiConfig_ReloadConfig. Tento krok zpřístupní zařízení ClientCert2 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 certifikát ClientCert2 je nyní platný.
Přejmenujte ClientCert2 na ClientCert1 voláním CertStore_MoveCertificate.
Zakažte síť Network1 voláním WifiConfig_SetNetworkEnabled , abyste v síti nastavili stav Povoleno na false, a pak znovu povolte síť Network1 voláním WifiConfig_SetNetworkEnabled a nastavte stav Povoleno na
true
hodnotu . 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 buď certifikát ClientCert2 ještě není platný, nebo že došlo k 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 jiné chybě, vyhledejte nápovědu v tématu Řešení potíží se sítí 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 připojení proběhlo úspěšně, znovu načtená konfigurace použije nový certifikát ClientCert1, který byl nahrazen certifikátem ClientCert2. Pokud se připojení nezdaří, znovu načtená konfigurace použije clientcert1.