Dela via


Certifikatets livscykel och förnyelse

Viktigt!

Det här är dokumentationen om Azure Sphere (Legacy). Azure Sphere (Legacy) upphör den 27 september 2027 och användarna måste migrera till Azure Sphere (integrerad) vid den här tiden. Använd versionsväljaren ovanför TOC för att visa dokumentationen om Azure Sphere (integrerad).

Klientcertifikatnyckelpar och CA-certifikat upphör regelbundet. Nätverksinfrastrukturen och enheterna måste kunna hantera certifikatets giltighetstid och presentera ett nytt certifikat utan att förlora anslutningen. Rotcertifikatutfärdarcertifikat, som används i RADIUS-serverautentisering, och klientcertifikat, som används vid enhetsautentisering, kräver olika metoder för att uppdatera.

Varning

Eftersom certifikat-ID:n är systemomfattande kan ett azsphere-kommando eller ett funktionsanrop som lägger till ett nytt certifikat skriva över ett certifikat som lades till av ett tidigare kommando- eller funktionsanrop, vilket kan orsaka nätverksanslutningsfel. Vi rekommenderar starkt att du utvecklar tydliga procedurer för certifikatuppdatering och väljer certifikat-ID:t noggrant.

Mer information om hur Azure Sphere använder certifikat-ID finns i Certifikat-ID :t.

Uppdatera ett rotcertifikatutfärdarcertifikat

Ett CA-certifikat är rotcertifikatutfärdare för autentiseringscertifikatet på RADIUS-servern. Om CA-certifikatet upphör att gälla eller om PKI:n för servern ändras, till exempel om servern hämtar en ny rotcertifikatutfärdare från en annan certifikatutfärdare, kan Azure Sphere-enheter inte längre autentisera RADIUS-autentiseringsservern. Enheterna måste dock fortsätta att fungera.

I ett typiskt trådlöst nätverk är det inte möjligt att utföra en "knivsegg" cutover; Du kan alltså inte uppdatera alla Azure Sphere-enheter exakt när rotcertifikatutfärdarorganisationen blir ogiltig. Enheterna kan vara offline vid kritiska tidpunkter, eller så kan tidshållningen variera mellan olika installationer. Ditt högnivåprogram måste kunna hämta det nya rotcertifikatutfärdarcertifikatet innan det aktuella upphör att gälla eller ändras, så att det nya certifikatet är redo att användas när det behövs.

Den rekommenderade metoden är att skapa och aktivera ett andra nätverk som har samma konfiguration som det befintliga nätverket, men som använder det nya rotcertifikatutfärdarcertifikatet. När det befintliga rotcertifikatutfärdarcertifikatet misslyckas i det ursprungliga nätverket försöker operativsystemet automatiskt ansluta till det andra nätverket. Programmet kan sedan ersätta certifikatet i det ursprungliga nätverket med den nya rotcertifikatutfärdare och ta bort det andra nätverket. Enheten kan sedan ansluta med det ursprungliga nätverket, som nu har den nya rotcertifikatutfärdarorganisationen. Följande bild sammanfattar den här metoden.

Programflöde för att uppdatera rotcertifikatutfärdarcertifikat

Ett högnivåprogram bör följa dessa steg för att smidigt hantera en uppdatering av rotcertifikatutfärdarcertifikatet:

  1. Som en del av normal drift konfigurerar programmet Network1 av typen WifiConfig_Security_Wpa2_EAP_TLS. Det här nätverket är länkat till klientcertifikatet för enheten och till Rot-CA1, som är den ursprungliga rotcertifikatutfärdare för RADIUS-servern.

  2. Ungefär 90 dagar innan RootCA upphör att gälla får enheten ett meddelande från moln till enhet om att ett nytt rotcertifikatutfärdarcertifikat för RADIUS-servern kommer att krävas snart. Meddelandet kan utlösas av en nätverksadministratör eller annan operatör. möjliga meddelandemekanismer inkluderar ett Azure IoT Hub- eller Azure IoT Central-meddelande från moln till enhet.

    Nätverksadministratören ansvarar för att uppdatera certifikatet på RADIUS-servern och för att säkerställa att Azure Sphere-enheterna uppdateras på rätt sätt.

  3. Appen hämtar en ny rotcertifikatutfärdare och anropar CertStore_InstallRootCACertificate för att spara den som rotcertifikatutfärdare2.

  4. Appen skapar ett nytt nätverk, Network2, genom att anropa WifiConfig_AddDuplicateNetwork för att duplicera Network1-konfigurationen. Den länkar sedan Rot-CA2 till Nätverk 2 och aktiverar Network2. Om Network2 är aktiverat på enheten och kan ansluta till Internet använder enheten det om Network1 inte är tillgängligt.

  5. Appen avsöker dagligen genom att anropa WifiConfig_GetConnectedNetworkId för att avgöra vilket nätverk enheten är ansluten till.

    Om den dagliga kontrollen av det anslutna nätverket misslyckas kan felet bero på ett certifikatproblem på antingen server- eller enhetssidan eller på något annat problem. Mer information finns i Felsöka nätverksproblem .

    Om enheten är ansluten till Network1 innebär det att certifikatet inte har upphört att gälla än och att allt fungerar som det ska. Appen upprepar det här steget tills enheten ansluter till Network2.

    Om enheten är ansluten till Network2 innebär det att det gamla certifikatet har upphört att gälla, att den uppdaterade PKI:n har konfigurerats på RADIUS-servern och att enheten kan autentisera servern med rot-CA2.

  6. När enheten fungerar korrekt med Network2 slutför appen ändringarna i nätverkskonfigurationen:

    • Byter namn på Rot-CA2 till Rot-CA1 genom att anropa CertStore_MoveCertificate. Den här funktionen skriver över den utgångna Rot-CA1 med innehållet i Rot-CA2.
    • Läser in Network1-konfigurationen igen genom att anropa WifiConfig_ReloadConfig. Network1-konfigurationen matchar nu det aktuella nätverket.
    • Tar bort Network2-konfigurationen genom att anropa WifiConfig_ForgetNetworkById.

Uppdatera ett klientcertifikat

Klientcertifikatet består av det offentliga och privata nyckelpar som används för att autentisera Azure Sphere-enheten. Precis som rotcertifikatutfärdarcertifikatet upphör klientcertifikatet att upphöra då och då och enheten måste kunna presentera ett nytt certifikat. Ditt högnivåprogram ansvarar för att hämta det nya certifikatet innan det befintliga certifikatet upphör att gälla. En app kan hämta det datum och den tid då ett certifikat upphör att gälla genom att anropa CertStore_GetCertificateNotAfter.

Följande bild sammanfattar den här proceduren. Med det här mönstret kan certifikatuppdateringskoden använda konstanta certifikat-ID:n, till exempel ClientCert1 och ClientCert2, i stället för att skapa ett unikt namn för varje nytt certifikat. Dessutom krävs inga nätverksbyten eller rensning av klientcertifikat.

Programflöde för uppdatering av klientcertifikat

Ett högnivåprogram bör följa dessa steg för att smidigt hantera en uppdatering av klientcertifikatet:

  1. Som en del av normal drift konfigurerar programmet Network1 av typen WifiConfig_Security_Wpa2_EAP_TLS. Det här nätverket är länkat till klientcertifikatet för enheten (ClientCert1) och till rotcertifikatutfärdare för RADIUS-servern. Innan appen startar uppdateringsproceduren verifierar den att enheten är ansluten till Network1 genom att anropa WifiConfig_GetNetworkIdByConfigName och WifiConfig_GetConnectedNetworkId. Om nätverks-ID:n matchar kan appen vara säker på att den är ansluten till det avsedda nätverket.

  2. Appen anropar CertStore_GetCertificateNotAfter med jämna mellanrum för att avgöra när klientcertifikatet upphör att gälla. Alternativt kan programmet lagra förfallodatumet i föränderlig lagring. Den bör dock fortfarande kontrollera förfallodatumet dagligen och efter varje omstart.

    Appen jämför förfallodatum och tid med aktuellt datum och tid. Om certifikatet upphör att gälla inom en förutbestämd tröskelvärdesperiod får appen ett nytt certifikat. Längden på tröskelvärdesperioden är ditt val. Som bästa praxis rekommenderar vi att du hämtar ett nytt certifikat minst fyra veckor före förfallodatumet om enheten är offline under en längre tid eller stöter på upprepade nätverks- eller serverproblem. Ju tidigare du kontrollerar, desto mer tid måste du lösa eventuella problem.

  3. Appen hämtar ett nytt certifikat från lämplig certifikatutfärdare. Valet av certifikatutfärdare är den lokala nätverksadministratörens ansvar.

  4. Appen sparar det nya certifikatet som ClientCert2 genom att anropa CertStore_InstallClientCertificate och lägger till det i Wi-Fi-konfigurationen network1 genom att anropa WifiConfig_SetClientCertStoreIdentifier.

  5. Appen läser in Wi-Fi-konfigurationen igen genom att anropa WifiConfig_ReloadConfig. Det här steget gör ClientCert2 tillgängligt för enheten för användning i nätverksanslutningar.

  6. Kontrollera om nätverksanslutningen lyckades.

    • Lyckad anslutning innebär att ClientCert2 nu är giltigt.

      • Byt namn på ClientCert2 till ClientCert1 genom att anropa CertStore_MoveCertificate.

      • Inaktivera Network1 genom att anropa WifiConfig_SetNetworkEnabled för att ange nätverkets aktiverade tillstånd till falskt och återaktivera sedan Network1 genom att anropa WifiConfig_SetNetworkEnabled för att ange tillståndet Aktiverat till .true Om du inaktiverar och återaktivera konfigurationen blir innehållet i det omdöpta certifikatet tillgängligt för programmet.

    • Om det inte går att ansluta innebär det antingen att ClientCert2 inte är giltigt än eller att något annat fel har uppstått.

      • Om certifikatet inte är giltigt ännu fortsätter du med steg 7 för att återställa nätverkskonfigurationen till sitt ursprungliga tillstånd.
      • Om något annat fel uppstod kan du läsa Felsöka nätverksproblem för att få hjälp och försöka ansluta igen.
  7. Oavsett om nätverksanslutningen lyckades läser du in Wi-Fi-konfigurationen igen genom att anropa WifiConfig_ReloadConfig. Om anslutningen lyckades kommer den omlästa konfigurationen att använda den nya ClientCert1, som ersattes av ClientCert2. Om anslutningen misslyckades använder den inlästa konfigurationen ClientCert1.