Udostępnij za pośrednictwem


Cykl życia i odnawianie certyfikatu

Ważne

Jest to dokumentacja usługi Azure Sphere (starsza wersja). Usługa Azure Sphere (starsza wersja) zostanie wycofana 27 września 2027 r., a użytkownicy muszą przeprowadzić migrację do usługi Azure Sphere (zintegrowanej) do tej pory. Użyj selektora wersji znajdującego się powyżej spisu treści, aby wyświetlić dokumentację usługi Azure Sphere (zintegrowaną).

Pary certyfikatów klienta i certyfikaty urzędu certyfikacji wygasają regularnie. Infrastruktura sieciowa i urządzenia muszą mieć możliwość obsługi wygaśnięcia certyfikatu i prezentowania nowego certyfikatu bez utraty łączności. Certyfikaty głównego urzędu certyfikacji, które są używane w uwierzytelnianiu serwera RADIUS i certyfikaty klienta, które są używane w uwierzytelnianiu urządzenia, wymagają różnych metod aktualizacji.

Uwaga

Ponieważ identyfikatory certyfikatów są w całym systemie, polecenie azsphere lub wywołanie funkcji, które dodaje nowy certyfikat, może zastąpić certyfikat, który został dodany przez wcześniejsze polecenie lub wywołanie funkcji, potencjalnie powodując błędy połączenia sieciowego. Zdecydowanie zalecamy opracowanie przejrzystych procedur aktualizacji certyfikatów i dokładne wybranie identyfikatorów certyfikatów.

Zobacz Identyfikatory certyfikatów, aby uzyskać więcej informacji na temat sposobu korzystania z identyfikatorów certyfikatów w usłudze Azure Sphere.

Aktualizowanie certyfikatu głównego urzędu certyfikacji

Certyfikat urzędu certyfikacji jest głównym urzędem certyfikacji certyfikatu uwierzytelniania na serwerze RADIUS. Jeśli certyfikat urzędu certyfikacji wygaśnie lub infrastruktura kluczy publicznych dla serwera ulegnie zmianie — na przykład jeśli serwer uzyska nowy główny urząd certyfikacji z innego urzędu certyfikacji — urządzenia usługi Azure Sphere nie mogą już uwierzytelniać serwera uwierzytelniania usługi RADIUS. Jednak urządzenia muszą nadal działać.

W typowej sieci bezprzewodowej nie można wykonać "noża krawędzi" cutover; oznacza to, że nie można zaktualizować wszystkich urządzeń usługi Azure Sphere w dokładnym momencie, gdy główny urząd certyfikacji stanie się nieprawidłowy. Urządzenia mogą być w trybie offline w krytycznym momencie lub dokładność pomiaru czasu może się różnić w zależności od instalacji. Aplikacja wysokiego poziomu musi mieć możliwość pobrania nowego certyfikatu głównego urzędu certyfikacji przed wygaśnięciem lub zmianą bieżącego urzędu certyfikacji, aby nowy certyfikat był gotowy do użycia w razie potrzeby.

Zalecaną metodą jest utworzenie i włączenie drugiej sieci, która ma taką samą konfigurację jak istniejąca sieć, ale używa nowego certyfikatu głównego urzędu certyfikacji. Gdy istniejący certyfikat głównego urzędu certyfikacji zakończy się niepowodzeniem w oryginalnej sieci, system operacyjny automatycznie spróbuje nawiązać połączenie z drugą siecią. Następnie aplikacja może zastąpić certyfikat w oryginalnej sieci nowym głównym urzędem certyfikacji i usunąć drugą sieć. Urządzenie może następnie nawiązać połączenie przy użyciu oryginalnej sieci, która ma teraz nowy główny urząd certyfikacji. Na poniższej ilustracji przedstawiono podsumowanie tego podejścia.

Przepływ aplikacji w celu zaktualizowania certyfikatu głównego urzędu certyfikacji

Aplikacja wysokiego poziomu powinna wykonać następujące kroki, aby bezproblemowo obsługiwać aktualizację certyfikatu głównego urzędu certyfikacji:

  1. W ramach normalnego działania aplikacja konfiguruje sieć1 typu WifiConfig_Security_Wpa2_EAP_TLS. Ta sieć jest połączona z certyfikatem klienta dla urządzenia i z głównym urzędem certyfikacji CA1, który jest oryginalnym głównym urzędem certyfikacji dla serwera RADIUS.

  2. Około 90 dni przed wygaśnięciem głównej przyczyny urządzenie otrzyma powiadomienie z chmury do urządzenia, że nowy certyfikat głównego urzędu certyfikacji dla serwera RADIUS będzie wymagany wkrótce. Powiadomienie może zostać wyzwolone przez administratora sieci lub innego operatora; możliwe mechanizmy powiadomień obejmują komunikat z chmury do urządzenia usługi Azure IoT Hub lub usługi Azure IoT Central.

    Administrator sieci jest odpowiedzialny za zaktualizowanie certyfikatu na serwerze RADIUS i upewnienie się, że urządzenia usługi Azure Sphere zostaną odpowiednio zaktualizowane.

  3. Aplikacja uzyskuje nowy główny urząd certyfikacji i wywołuje CertStore_InstallRootCACertificate , aby zapisać go jako główny urząd certyfikacji 2.

  4. Aplikacja tworzy nową sieć Network2, wywołując WifiConfig_AddDuplicateNetwork w celu zduplikowania konfiguracji Network1. Następnie łączy główny urząd certyfikacji 2 z siecią 2 i włącza sieć 2. Jeśli na urządzeniu jest włączona opcja Network2 i może łączyć się z Internetem, urządzenie będzie używać go, jeśli sieć 1 jest niedostępna.

  5. Aplikacja sonduje codziennie, wywołując WifiConfig_GetConnectedNetworkId w celu określenia sieci, z którą urządzenie jest połączone.

    Jeśli codzienne sprawdzanie połączonej sieci zakończy się niepowodzeniem, błąd może wynikać z problemu z certyfikatem po stronie serwera lub urządzenia albo z innego problemu. Aby uzyskać pomoc, zobacz Rozwiązywanie problemów z siecią.

    Jeśli urządzenie jest połączone z siecią Network1, oznacza to, że certyfikat jeszcze nie wygasł i wszystko działa prawidłowo. Aplikacja powtarza ten krok, dopóki urządzenie nie połączy się z siecią 2.

    Jeśli urządzenie jest połączone z siecią Network2, oznacza to, że stary certyfikat wygasł, zaktualizowana infrastruktura PKI jest skonfigurowana na serwerze RADIUS, a urządzenie może uwierzytelnić serwer przy użyciu głównego urzędu certyfikacji 2.

  6. Gdy urządzenie działa prawidłowo z siecią Network2, aplikacja kończy zmiany konfiguracji sieci:

    • Zmienia nazwę głównego urzędu certyfikacji 2 na główny urząd certyfikacji 1 przez wywołanie CertStore_MoveCertificate. Ta funkcja zastępuje wygasły główny urząd certyfikacji CA1 z zawartością głównego urzędu certyfikacji 2.
    • Ponownie ładuje konfigurację network1, wywołując WifiConfig_ReloadConfig. Konfiguracja Network1 jest teraz zgodna z bieżącą siecią.
    • Usuwa konfigurację Network2, wywołując WifiConfig_ForgetNetworkById.

Aktualizowanie certyfikatu klienta

Certyfikat klienta składa się z pary kluczy publicznych i prywatnych, które są używane do uwierzytelniania urządzenia usługi Azure Sphere. Podobnie jak certyfikat głównego urzędu certyfikacji, certyfikat klienta wygaśnie od czasu do czasu, a urządzenie musi mieć możliwość przedstawienia nowego certyfikatu. Aplikacja wysokiego poziomu jest odpowiedzialna za uzyskanie nowego certyfikatu przed wygaśnięciem istniejącego certyfikatu. Aplikacja może uzyskać datę i godzinę wygaśnięcia certyfikatu przez wywołanie CertStore_GetCertificateNotAfter.

Poniższa ilustracja podsumowuje tę procedurę. Ten wzorzec umożliwia aktualizacji certyfikatu kod używania stałych identyfikatorów certyfikatów, takich jak ClientCert1 i ClientCert2, zamiast tworzyć unikatową nazwę dla każdego nowego certyfikatu. Ponadto nie wymaga wymiany sieci ani oczyszczania certyfikatu klienta.

Przepływ aplikacji w celu zaktualizowania certyfikatu klienta

Aplikacja wysokiego poziomu powinna wykonać następujące kroki, aby bezproblemowo obsługiwać aktualizację certyfikatu klienta:

  1. W ramach normalnego działania aplikacja konfiguruje sieć1 typu WifiConfig_Security_Wpa2_EAP_TLS. Ta sieć jest połączona z certyfikatem klienta dla urządzenia (ClientCert1) i z głównym urzędem certyfikacji dla serwera RADIUS. Przed rozpoczęciem procedury aktualizacji aplikacja sprawdza, czy urządzenie jest połączone z siecią Network1, wywołując WifiConfig_GetNetworkIdByConfigName i WifiConfig_GetConnectedNetworkId. Jeśli identyfikatory sieci są zgodne, aplikacja może być pewna, że jest połączona z docelową siecią.

  2. Aplikacja wywołuje CertStore_GetCertificateNotAfter w regularnych odstępach czasu, aby określić, kiedy certyfikat klienta wygaśnie. Alternatywnie aplikacja może przechowywać datę wygaśnięcia w magazynie modyfikowalnym; jednak nadal powinna sprawdzać datę wygaśnięcia codziennie i po każdym ponownym uruchomieniu.

    Aplikacja porównuje datę i godzinę wygaśnięcia z bieżącą datą i godziną. Jeśli certyfikat wygaśnie w przedterminowym okresie progowym, aplikacja otrzyma nowy certyfikat. Długość okresu progowego jest twoim wyborem. Najlepszym rozwiązaniem jest uzyskanie nowego certyfikatu co najmniej cztery tygodnie przed wygaśnięciem w przypadku, gdy urządzenie jest w trybie offline przez długi czas lub napotyka powtarzające się problemy z siecią lub serwerem. Tym szybciej sprawdzisz, tym więcej czasu trzeba będzie rozwiązać wszelkie problemy.

  3. Aplikacja pobiera nowy certyfikat od odpowiedniego wystawcy certyfikatu. Wybór wystawcy certyfikatu jest odpowiedzialny za administratora sieci lokalnej.

  4. Aplikacja zapisuje nowy certyfikat jako ClientCert2 przez wywołanie CertStore_InstallClientCertificate i dodaje go do konfiguracji sieci Wi-Fi przez wywołanie WifiConfig_SetClientCertStoreIdentifier.

  5. Aplikacja ponownie ładuje konfigurację sieci Wi-Fi, wywołując WifiConfig_ReloadConfig. W tym kroku klientCert2 jest dostępny dla urządzenia do użycia w połączeniach sieciowych.

  6. Sprawdź, czy połączenie sieciowe zakończyło się pomyślnie.

    • Pomyślne połączenie oznacza, że certyfikat ClientCert2 jest teraz prawidłowy.

      • Zmień nazwę ClientCert2 na ClientCert1, wywołując CertStore_MoveCertificate.

      • Wyłącz sieć1 przez wywołanie WifiConfig_SetNetworkEnabled, aby ustawić stan Włączone sieci na wartość false, a następnie ponownie włączyć sieć1, wywołując WifiConfig_SetNetworkEnabled, aby ustawić stan Włączone na .true Wyłączenie i ponowne włączenie konfiguracji sprawia, że zawartość zmienionego certyfikatu jest dostępna dla aplikacji.

    • Niepowodzenie połączenia oznacza, że certyfikat ClientCert2 nie jest jeszcze prawidłowy lub że wystąpił inny błąd.

      • Jeśli certyfikat nie jest jeszcze ważny, przejdź do kroku 7, aby zwrócić konfigurację sieci do stanu pierwotnego.
      • Jeśli wystąpił inny błąd, zobacz Rozwiązywanie problemów z siecią, aby uzyskać pomoc i ponowić próbę nawiązania połączenia.
  7. Niezależnie od tego, czy połączenie sieciowe powiodło się, załaduj ponownie konfigurację sieci Wi-Fi, wywołując WifiConfig_ReloadConfig. Jeśli połączenie się powiedzie, ponownie załadowana konfiguracja będzie używać nowego ClientCert1, który został zastąpiony przez ClientCert2. Jeśli połączenie nie powiedzie się, ponownie załadowana konfiguracja będzie używać elementu ClientCert1.