Lebenszyklus und Verlängerung des Zertifikats

Clientzertifikat-Schlüsselpaare und Zertifizierungsstellenzertifikate laufen regelmäßig ab. Ihre Netzwerkinfrastruktur und Ihre Geräte müssen in der Lage sein, den Zertifikatablauf zu verarbeiten und ein neues Zertifikat vorzulegen, ohne die Konnektivität zu verlieren. Stammzertifizierungsstellenzertifikate, die bei der RADIUS-Serverauthentifizierung verwendet werden, und Clientzertifikate, die bei der Geräteauthentifizierung verwendet werden, erfordern unterschiedliche Aktualisierungsansätze.

Vorsicht

Da Zertifikat-IDs systemweit sind, kann ein az sphere-Befehl oder ein Funktionsaufruf, der ein neues Zertifikat hinzufügt, ein Zertifikat überschreiben, das von einem früheren Befehl oder Funktionsaufruf hinzugefügt wurde, was zu Netzwerkverbindungsfehlern führen kann. Es wird dringend empfohlen, eindeutige Prozeduren für die Zertifikataktualisierung zu entwickeln und Zertifikat-IDs sorgfältig auszuwählen.

Weitere Informationen zur Verwendung von Zertifikat-IDs in Azure Sphere finden Sie unter Zertifikat-IDs .

Aktualisieren eines Zertifikats der Stammzertifizierungsstelle

Ein Zertifizierungsstellenzertifikat ist die Stammzertifizierungsstelle des Authentifizierungszertifikats auf dem RADIUS-Server. Wenn das Zertifizierungsstellenzertifikat abläuft oder sich die PKI für den Server ändert , 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 funktionieren.

In einem typischen Drahtlosen Netzwerk ist es nicht möglich, eine "Messer-Edge"-Übernahme durchzuführen; Das heißt, Sie können nicht alle Azure Sphere-Geräte genau dann aktualisieren, wenn die Stammzertifizierungsstelle ungültig wird. Geräte sind möglicherweise zum kritischen Zeitpunkt offline, oder die Zeitnahmegenauigkeit kann installationsübergreifend variieren. Ihre allgemeine Anwendung muss in der Lage sein, das neue Zertifikat der Stammzertifizierungsstelle abzurufen, bevor das aktuelle abläuft oder geändert wird, damit das neue Zertifikat bei Bedarf verwendet werden kann.

Der empfohlene Ansatz besteht darin, ein zweites Netzwerk zu erstellen und zu aktivieren, das dieselbe Konfiguration wie das vorhandene Netzwerk aufweist, aber das neue Zertifikat der Stammzertifizierungsstelle verwendet. Wenn das vorhandene Zertifikat der Stammzertifizierungsstelle im ursprünglichen Netzwerk fehlschlägt, 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 eine Verbindung mit dem ursprünglichen Netzwerk herstellen, das jetzt über die neue Stammzertifizierungsstelle verfügt. In der folgenden Abbildung wird dieser Ansatz zusammengefasst.

Anwendungsablauf zum Aktualisieren des Zertifikats der Stammzertifizierungsstelle

Eine allgemeine Anwendung sollte die folgenden Schritte ausführen, um eine Aktualisierung des Zertifikats der Stammzertifizierungsstelle nahtlos zu verarbeiten:

  1. Im Rahmen des normalen Betriebs konfiguriert die Anwendung Network1 vom Typ WifiConfig_Security_Wpa2_EAP_TLS. Dieses Netzwerk ist mit dem Clientzertifikat für das Gerät und der Stammzertifizierungsstelle 1 verknüpft, der ursprünglichen Stammzertifizierungsstelle für den RADIUS-Server.

  2. Etwa 90 Tage vor Ablauf der RootCA erhält das Gerät eine Cloud-zu-Gerät-Benachrichtigung, dass bald ein neues Stammzertifizierungsstellenzertifikat 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-zu-Gerät-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.

  3. Die App ruft eine neue Stammzertifizierungsstelle ab und ruft CertStore_InstallRootCACertificate auf, um sie als Stammzertifizierungsstelle2 zu speichern.

  4. Die App erstellt ein neues Netzwerk, Network2, indem sie WifiConfig_AddDuplicateNetwork aufruft, um die Network1-Konfiguration zu duplizieren. Anschließend wird Root CA2 mit Network 2 verknüpft und Network2 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.

  5. Die App ruft täglich WifiConfig_GetConnectedNetworkId ab, um zu bestimmen, mit welchem Netzwerk das Gerät verbunden ist.

    Wenn die tägliche Überprüfung des verbundenen Netzwerks fehlschlägt, kann der Fehler auf ein Zertifikatproblem auf server- oder geräteseitiger Seite oder auf ein anderes Problem zurückzuführen sein. Hilfe finden Sie unter Behandeln von 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 2 authentifizieren kann.

  6. Wenn das Gerät ordnungsgemäß mit Network2 funktioniert, schließt die App die Änderungen an der Netzwerkkonfiguration ab:

Aktualisieren eines Clientzertifikats

Das Clientzertifikat besteht aus dem paar öffentlichen und privaten Schlüssel, die zum Authentifizieren des Azure Sphere-Geräts verwendet werden. Wie das Zertifikat der Stammzertifizierungsstelle läuft das Clientzertifikat von Zeit zu Zeit ab, und das Gerät muss in der Lage sein, ein neues Zertifikat vorzuweisen. Ihre allgemeine Anwendung ist dafür verantwortlich, das neue Zertifikat zu erhalten, 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 wird dieses Verfahren zusammengefasst. Dieses Muster ermöglicht es Ihrem Zertifikataktualisierungscode, konstante Zertifikat-IDs wie ClientCert1 und ClientCert2 zu verwenden, anstatt einen eindeutigen Namen für jedes neue Zertifikat zu erstellen. Darüber hinaus ist kein Netzwerkaustausch oder eine Bereinigung des Clientzertifikats erforderlich.

Anwendungsablauf zum Aktualisieren des Clientzertifikats

Eine allgemeine Anwendung sollte die folgenden Schritte ausführen, um eine Aktualisierung des Clientzertifikats nahtlos zu verarbeiten:

  1. Im Rahmen des normalen Betriebs konfiguriert die Anwendung 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 den Updatevorgang startet, überprüft sie, ob das Gerät mit Network1 verbunden ist, indem WifiConfig_GetNetworkIdByConfigName und WifiConfig_GetConnectedNetworkId aufgerufen wird. Wenn die Netzwerk-IDs übereinstimmen, kann die App sicher sein, dass sie mit dem beabsichtigten Netzwerk verbunden ist.

  2. Die App ruft in regelmäßigen Abständen CertStore_GetCertificateNotAfter auf, um zu bestimmen, wann das Clientzertifikat abläuft. Alternativ kann die Anwendung das Ablaufdatum in einem veränderlichen Speicher speichern. Das Ablaufdatum sollte jedoch 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 Schwellenwertzeitraums abläuft, erhält die App ein neues Zertifikat. Die Länge des Schwellenwertzeitraums ist Ihre Wahl. Als bewährte Methode empfiehlt es sich, mindestens vier Wochen vor Ablauf ein neues Zertifikat zu erhalten, falls das Gerät für einen längeren Zeitraum offline ist oder wiederholte Netzwerk- oder Serverprobleme auftreten. Je früher Sie überprüfen, desto mehr Zeit haben Sie zum Beheben von Problemen.

  3. Die App erhält ein neues Zertifikat vom entsprechenden Zertifikataussteller. Die Auswahl eines Zertifikatausstellers liegt in der Verantwortung des lokalen Netzwerkadministrators.

  4. Die App speichert das neue Zertifikat als ClientCert2, indem CertStore_InstallClientCertificate aufgerufen wird, und fügt es der Network1-Wi-Fi-Konfiguration hinzu, indem WifiConfig_SetClientCertStoreIdentifier aufgerufen wird.

  5. Die App lädt die Wi-Fi-Konfiguration erneut, indem WifiConfig_ReloadConfig aufgerufen wird. In diesem Schritt wird ClientCert2 für das Gerät zur Verwendung in Netzwerkverbindungen verfügbar.

  6. Überprüfen Sie, ob die Netzwerkverbindung erfolgreich war.

    • Eine erfolgreiche Verbindung bedeutet, dass 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 Zustand Aktiviert des Netzwerks auf false festzulegen, und aktivieren Sie Network1 dann erneut, indem Sie WifiConfig_SetNetworkEnabled aufrufen, um den Zustand Aktiviert auf truefestzulegen. Durch Das Deaktivieren und erneute Aktivieren der Konfiguration wird der Inhalt des umbenannten Zertifikats für die Anwendung verfügbar.

    • Ein Fehler beim Herstellen einer Verbindung bedeutet, 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 in ihren ursprünglichen Zustand zurückzugeben.
      • Wenn ein anderer Fehler aufgetreten ist, finden Sie unter Behandeln von Netzwerkproblemen Hilfe und Wiederholen der Verbindung.
  7. Unabhängig davon, ob die Netzwerkverbindung erfolgreich war, laden Sie die Wi-Fi-Konfiguration erneut, indem Sie WifiConfig_ReloadConfig aufrufen. Wenn die Verbindung erfolgreich war, verwendet die neu geladene Konfiguration die neue ClientCert1, die durch ClientCert2 ersetzt wurde. Wenn die Verbindung nicht erfolgreich war, verwendet die neu geladene Konfiguration ClientCert1.