Dela via


Certifikatets livscykel och förnyelse

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

Försiktighet

Eftersom certifikat-ID:t är systemomfattande kan ett az-sfärkommando eller ett funktionsanrop som lägger till ett nytt certifikat skriva över ett certifikat som har lagts till av ett tidigare kommando- eller funktionsanrop, vilket kan orsaka fel i nätverksanslutningen. Vi rekommenderar starkt att du utvecklar tydliga procedurer för certifikatuppdatering och väljer certifikat-ID:er noggrant.

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

Uppdatera ett rotcertifikatutfärdare

Ett certifikatutfärdare är rotcertifikatutfärdare för autentiseringscertifikatet på RADIUS-servern. Om certifikatutfärdarcertifikatet upphör att gälla eller om PKI:n för servern ändras, till exempel om servern förvärvar 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 fungera.

På ett typiskt trådlöst nätverk är det inte möjligt att utföra en "kniv-edge" cutover; Det vill säga att du inte kan uppdatera alla Azure Sphere-enheter i det exakta ögonblicket när rot-CA blir ogiltig. Enheter kan vara offline i det kritiska ögonblicket eller så kan noggrannheten i tidshållningen variera mellan installationerna. Ditt högnivåprogram måste kunna hämta det nya rotcertifikatutfärdarcertifikatet innan det aktuella förfaller eller ändras, så att det nya certifikatet är klart för användning 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ärdaren och ta bort det andra nätverket. Enheten kan sedan ansluta med det ursprungliga nätverket, som nu har den nya rot-CA. I följande bild sammanfattas den här metoden.

Programflöde för uppdatering av rotcertifikatutfärdarcertifikat

Ett program på hög nivå ska följa de här stegen för att smidigt hantera en uppdatering av rotcertifikatutfärdarcertifikatet:

  1. Som en del av den normala åtgärden konfigurerar programmet Typ av WifiConfig_Security_Wpa2_EAP_TLSnätverk1 . Det här nätverket är kopplat till klientcertifikatet för enheten och till Rot-CA1, som är den ursprungliga rotcertifikatutfärdaren för RADIUS-servern.

  2. Ungefär 90 dagar innan RootCA går ut får enheten ett meddelande från molnet till enheten om att ett nytt Rotcertifikatutfärdarcertifikat för RADIUS-servern snart kommer att krävas. Meddelandet kan utlösas av en nätverksadministratör eller annan operatör. eventuella meddelandemekanismer omfattar 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 förvärvar en ny rotcertifikatfärdare och anropar CertStore_InstallRootCACertificate för att spara den som rot-CA2.

  4. Appen skapar ett nytt nätverk, Network2, genom att ringa 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 Nätverk1 inte är tillgängligt.

  5. Appen omröstningar dagligen genom att ringa 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 Nätverk1 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 Nätverk2.

    Om enheten är ansluten till Network2 innebär det att det gamla certifikatet har upphört att gälla, att den uppdaterade PKI:en 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 förfallna rot-CA1 med innehållet i Rot-CA2.
    • Laddar nätverkskonfigurationen igen genom att ringa WifiConfig_ReloadConfig. Nätverkskonfigurationen matchar nu det aktuella nätverket.
    • Tar bort Network2-konfigurationen genom att ringa WifiConfig_ForgetNetworkById.

Uppdatera ett klientcertifikat

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

I följande bild sammanfattas den här proceduren. Det här mönstret gör att koden för certifikatuppdateringar kan använda konstanta certifikat-ID:er, 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 klient cert

Ett program på hög nivå ska följa de här stegen för att smidigt hantera en uppdatering av klientcertifikatet:

  1. Som en del av den normala åtgärden konfigurerar programmet Typ av WifiConfig_Security_Wpa2_EAP_TLSnätverk1 . Det här nätverket är länkat till klientcertifikatet för enheten (ClientCert1) och till rotcertifikatutfärdaren för RADIUS-servern. Innan appen startar uppdateringsproceduren verifieras att enheten är ansluten till Nätverk1 genom att ringa WifiConfig_GetNetworkIdByConfigName och WifiConfig_GetConnectedNetworkId. Om nätverks-ID:na 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 förfaller. Alternativt kan programmet lagra utgångsdatumet i mutable storage. Det bör dock fortfarande kontrollera förfallodatumet dagligen och efter varje omstart.

    Appen jämför utgångsdatum och -tid med dagens datum och aktuell tid. Om certifikatet går ut inom en förutbestämd tröskelvärdesperiod får appen ett nytt certifikat. Längden på tröskelvärdesperioden är ditt val. Vi rekommenderar att du skaffar ett nytt certifikat minst fyra veckor före förfallodatumet om enheten är offline under en lång tid eller stöter på upprepade nätverk- eller serverproblem. Ju tidigare du kontrollerar, desto längre tid får du för att lösa eventuella problem.

  3. Appen får ett nytt certifikat från lämplig certifikatutfärdare. Den lokala nätverksadministratören ansvarar för valet av certifikatutfärdare.

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

  5. Appen laddar om konfigurationen av Wi-Fi genom att ringa 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 ringa CertStore_MoveCertificate.

      • Inaktivera Nätverk1 genom att ringa WifiConfig_SetNetworkEnabled för att ställa in nätverkets aktiverade tillstånd till falskt och sedan återaktivera Network1 genom att ringa WifiConfig_SetNetworkEnabled för att ange aktiverat tillstånd till true. Om du inaktiverar och aktiverar konfigurationen igen 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 uppstod.

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