Lebenszyklus und Erneuerung von Zertifikaten
Wichtig
Dies ist die Dokumentation zu Azure Sphere (Legacy). Azure Sphere (Legacy) wird am 27. September 2027 eingestellt, und Benutzer müssen bis zu diesem Zeitpunkt zu Azure Sphere (integriert) migrieren. Verwenden Sie die Versionsauswahl oberhalb des Inhaltsverzeichniss, um die Dokumentation zu Azure Sphere (Integriert) anzuzeigen.
Clientzertifikat-Schlüssel-Paare und Zertifizierungsstellenzertifikate laufen regelmäßig ab. Ihre Netzwerkinfrastruktur und Ihre Geräte müssen in der Lage sein, den Ablauf von Zertifikaten zu handhaben und ein neues Zertifikat bereitzustellen, ohne dass die Konnektivität verloren geht. Zertifikate von Stammzertifizierungsstellen, die bei der Authentifizierung beim RADIUS-Server verwendet werden, und Clientzertifikate, die bei der Geräteauthentifizierung zum Einsatz kommen, erfordern unterschiedliche Herangehensweisen bei der Aktualisierung.
Achtung
Da Zertifikat-IDs systemweit gelten, kann ein azsphere-Befehl oder ein Funktionsaufruf, der ein neues Zertifikat hinzufügt, ein Zertifikat überschreiben, das mit einem früheren Befehl oder Funktionsaufruf hinzugefügt wurde. Dadurch können Netzwerkverbindungsfehler verursacht werden. Es wird dringend empfohlen, klare Verfahren zum Aktualisieren von Zertifikaten zu entwickeln und Zertifikat-IDs sorgfältig auszuwählen.
Weitere Informationen zur Verwendung von Zertifikat-IDs durch Azure Sphere finden Sie unter Zertifikat-IDs.
Aktualisieren eines Zertifikats einer Stammzertifizierungsstelle
Ein Zertifizierungsstellenzertifikat ist die Stammzertifizierungsstelle für das Authentifizierungszertifikat des RADIUS-Servers. Wenn das Zertifizierungsstellenzertifikat abläuft oder die PKI für den Server geändert wird (z. B. wenn der Server eine neue Stammzertifizierungsstelle von einer anderen Zertifizierungsstelle abruft), können Azure Sphere-Geräte den RADIUS-Authentifizierungsserver nicht mehr authentifizieren. Die Geräte müssen jedoch weiterhin funktionsfähig bleiben.
In einem typischen drahtlosen Netzwerk ist es nicht möglich, eine sofortige Umstellung auszuführen. Das heißt, Sie können nicht alle Azure Sphere-Geräte zu genau dem Zeitpunkt aktualisieren, zu dem die Stammzertifizierungsstelle ungültig wird. Die Geräte könnten zu einem kritischen Zeitpunkt offline geschaltet werden, oder die zeitliche Genauigkeit kann bei den einzelnen Installationen abweichen. Ihre Anwendung auf hoher Ebene muss in der Lage sein, das neue Zertifikat der Stammzertifizierungsstelle abzurufen, bevor das aktuelle Zertifikat abläuft oder geändert wird, damit das neue Zertifikat bei Bedarf zur Verwendung bereit steht.
Es wird daher empfohlen, ein zweites Netzwerk zu erstellen und zu aktivieren, das die gleiche Konfiguration wie das vorhandene Netzwerk aufweist, aber das neue Zertifikat der Stammzertifizierungsstelle verwendet. Wenn das vorhandene Zertifikat der Stammzertifizierungsstelle im ursprünglichen Netzwerk ausfällt, versucht das Betriebssystem automatisch, eine Verbindung mit dem zweiten Netzwerk herzustellen. Die Anwendung kann dann das Zertifikat im ursprünglichen Netzwerk durch die neue Stammzertifizierungsstelle ersetzen und das zweite Netzwerk löschen. Das Gerät kann dann mithilfe des ursprünglichen Netzwerks, das nun über die neue Stammzertifizierungsstelle verfügt, eine Verbindung herstellen. In der folgenden Abbildung ist dieser Ansatz zusammengefasst.
Eine Anwendung auf hoher Ebene sollte die folgenden Schritte einhalten, um ein Update des Zertifikats der Stammzertifizierungsstelle nahtlos ausführen zu können:
Im Rahmen des normalen Betriebs konfiguriert die Anwendung das Netzwerk „Network1“ vom Typ
WifiConfig_Security_Wpa2_EAP_TLS
. Dieses Netzwerk ist mit dem Clientzertifikat für das Gerät und der Stammzertifizierungsstelle „Root CA1“ verknüpft. Dies ist die ursprüngliche Stammzertifizierungsstelle für den RADIUS-Server.Etwa 90 Tage vor Ablauf der Stammzertifizierungsstelle erhält das Gerät eine Cloud-zu-Gerät-Benachrichtigung, dass in Kürze ein neues Zertifikat der Stammzertifizierungsstelle für den RADIUS-Server erforderlich ist. Die Benachrichtigung kann von einem Netzwerkadministrator oder einem anderen Betreiber ausgelöst werden; Mögliche Benachrichtigungsmechanismen umfassen eine Azure IoT Hub- oder Azure IoT Central Cloud-to-Device-Nachricht.
Der Netzwerkadministrator ist dafür verantwortlich, das Zertifikat auf dem RADIUS-Server zu aktualisieren und sicherzustellen, dass die Azure Sphere-Geräte entsprechend aktualisiert werden.
Die App ruft eine neue Stammzertifizierungsstelle ab und ruft CertStore_InstallRootCACertificate auf, um sie als Stammzertifizierungsstelle „Root CA2“ zu speichern.
Die App erstellt das neue Netzwerk „Network2“ durch Aufrufen von WifiConfig_AddDuplicateNetwork, um die Konfiguration von „Network1“ zu duplizieren. Anschließend wird „Root CA2“ mit „Network2“ verknüpft, und „Network2“ wird aktiviert. Wenn „Network2“ auf dem Gerät aktiviert ist und eine Verbindung mit dem Internet herstellen kann, wird es vom Gerät verwendet, wenn „Network1“ nicht verfügbar ist.
Die App ruft täglich WifiConfig_GetConnectedNetworkId auf, um zu ermitteln, mit welchem Netzwerk das Gerät verbunden ist.
Wenn die tägliche Überprüfung des verbundenen Netzwerks zu einem Fehler führt, könnte dieser Fehler durch ein Zertifikatproblem auf Server- oder Geräteseite oder auf ein anderes Problem zurückzuführen sein. Hilfe finden Sie unter "Problembehandlung bei Netzwerkproblemen ".
Wenn das Gerät mit „Network1“ verbunden ist, bedeutet dies, dass das Zertifikat noch nicht abgelaufen ist und alles ordnungsgemäß funktioniert. Die App wiederholt diesen Schritt, bis das Gerät eine Verbindung mit „Network2“ herstellt.
Wenn das Gerät mit „Network2“ verbunden ist, bedeutet dies, dass das alte Zertifikat abgelaufen ist, die aktualisierte PKI auf dem RADIUS-Server eingerichtet ist, und das Gerät den Server mithilfe der Stammzertifizierungsstelle „Root CA2“ authentifizieren kann.
Wenn das Gerät ordnungsgemäß mit „Network2“ funktioniert, werden die Änderungen an der Netzwerkkonfiguration von der App abgeschlossen:
- Umbenennen von „Root CA2“ in „Root CA1“ durch Aufruf von CertStore_MoveCertificate. Diese Funktion überschreibt die abgelaufene Stammzertifizierungstelle „Root CA1“ mit dem Inhalt von „Root CA2“.
- Erneutes Laden der Konfiguration von „Network1“ durch Aufruf von WifiConfig_ReloadConfig. Die Konfiguration von „Network1“ entspricht nun dem aktuellen Netzwerk.
- Löschen der Konfiguration von „Network2“ durch Aufruf von WifiConfig_ForgetNetworkById
Aktualisieren eines Clientzertifikats
Das Clientzertifikat umfasst das Paar aus öffentlichem und privatem Schlüssel, das zum Authentifizieren des Azure Sphere-Geräts verwendet wird. Wie das Zertifikat der Stammzertifizierungsstelle läuft auch das Clientzertifikat von Zeit zu Zeit ab, und das Gerät muss ein neues Zertifikat bereitstellen können. Ihre Anwendung auf hoher Ebene ist dafür verantwortlich, das neue Zertifikat abzurufen, bevor das vorhandene Zertifikat abläuft. Eine App kann das Datum und die Uhrzeit des Ablaufs eines Zertifikats abrufen, indem sie CertStore_GetCertificateNotAfter aufruft.
In der folgenden Abbildung ist dieses Verfahren zusammengefasst. Dieses Muster ermöglicht dem Code für die Zertifikataktualisierung die Verwendung konstanter Zertifikat-IDs wie z. B. „ClientCert1“ und „ClientCert2“, anstatt für jedes neue Zertifikat einen eindeutigen Namen zu erstellen. Darüber hinaus sind kein Netzwerkaustausch und keine Clientzertifikatbereinigung erforderlich.
Eine Anwendung auf hoher Ebene sollte die folgenden Schritte einhalten, um ein Update des Clientzertifikats nahtlos ausführen zu können:
Im Rahmen des normalen Betriebs konfiguriert die Anwendung das Netzwerk „Network1“ vom Typ
WifiConfig_Security_Wpa2_EAP_TLS
. Dieses Netzwerk ist mit dem Clientzertifikat für das Gerät („ClientCert1“) und der Stammzertifizierungsstelle für den RADIUS-Server verknüpft. Bevor die App das Updateverfahren startet, überprüft sie, ob das Gerät mit „Network1“ verbunden ist. Dazu ruft sie WifiConfig_GetNetworkIdByConfigName und WifiConfig_GetConnectedNetworkId auf. Wenn die Netzwerk-IDs übereinstimmen, weiß die App, dass sie mit dem vorgesehenen Netzwerk verbunden ist.Die App ruft in regelmäßigen Abständen CertStore_GetCertificateNotAfter auf, um zu ermitteln, wann das Clientzertifikat abläuft. Alternativ kann die Anwendung das Ablaufdatum in einem änderbaren Speicher speichern. Allerdings sollte das Ablaufdatum weiterhin täglich und nach jedem Neustart überprüft werden.
Die App vergleicht das Ablaufdatum und die Uhrzeit mit dem aktuellen Datum und der aktuellen Uhrzeit. Wenn das Zertifikat innerhalb eines vordefinierten Zeitraums abläuft, ruft die App ein neues Zertifikat ab. Die Länge des Zeitraums legen Sie fest. Als bewährte Methode empfehlen wir, mindestens vier Wochen vor Ablauf ein neues Zertifikat zu erhalten, falls das Gerät über einen längeren Zeitraum offline ist oder wiederholte Netzwerk- oder Serverprobleme auftritt. Je früher Sie die Überprüfung durchführen, desto mehr Zeit haben Sie zum Behandeln von Problemen.
Die App ruft ein neues Zertifikat vom entsprechenden Zertifikataussteller ab. Die Auswahl eines Zertifikatausstellers liegt in der Verantwortung des lokalen Netzwerkadministrators.
Die App speichert das neue Zertifikat als „ClientCert2“, indem sie CertStore_InstallClientCertificate aufruft. Anschließend fügt sie es der WLAN-Konfiguration von „Network1“ durch Aufrufen von WifiConfig_SetClientCertStoreIdentifier hinzu.
Die App lädt die WLAN-Konfiguration durch Aufrufen von WifiConfig_ReloadConfig neu. Mit diesem Schritt wird „ClientCert2“ für das Gerät zur Verwendung bei Netzwerkverbindungen verfügbar.
Überprüfen Sie, ob die Netzwerkverbindung erfolgreich hergestellt wurde.
Eine erfolgreiche Verbindung bedeutet, dass das Clientzertifikat „ClientCert2“ jetzt gültig ist.
Benennen Sie „ClientCert2“ in „ClientCert1“ um, indem Sie CertStore_MoveCertificate aufrufen.
Deaktivieren Sie „Network1“, indem Sie WifiConfig_SetNetworkEnabled aufrufen, um den Status „Aktiviert“ des Netzwerks auf FALSE festzulegen. Aktivieren Sie anschließend „Network1“ erneut, indem Sie WifiConfig_SetNetworkEnabled aufrufen, um den Status „Aktiviert“ auf
true
festzulegen. Durch das Deaktivieren und erneute Aktivieren der Konfiguration wird der Inhalt des umbenannten Zertifikats für die Anwendung verfügbar gemacht.
Wenn keine Verbindung hergestellt werden kann, bedeutet dies, dass „ClientCert2“ noch nicht gültig ist oder dass ein anderer Fehler aufgetreten ist.
- Wenn das Zertifikat noch nicht gültig ist, fahren Sie mit Schritt 7 fort, um die Netzwerkkonfiguration auf den ursprünglichen Zustand zurückzusetzen.
- Wenn ein anderer Fehler aufgetreten ist, lesen Sie die Problembehandlung bei Netzwerkproblemen , um Hilfe zu finden und die Verbindung erneut zu versuchen.
Unabhängig davon, ob die Netzwerkverbindung erfolgreich hergestellt wurde, laden Sie die WLAN-Konfiguration erneut, indem Sie WifiConfig_ReloadConfig aufrufen. Wenn die Verbindung erfolgreich hergestellt wurde, verwendet die neu geladene Konfiguration das neue Clientzertifikat „ClientCert1“, das durch „ClientCert2“ ersetzt wurde. Wenn die Verbindung nicht hergestellt werden konnte, verwendet die neu geladene Konfiguration „ClientCert1“.