Compartir a través de


Ciclo de vida y renovación de certificados

Importante

Esta es la documentación de Azure Sphere (heredado). Azure Sphere (heredado) se retira el 27 de septiembre de 2027 y los usuarios deben migrar a Azure Sphere (integrado) en este momento. Use el selector de versiones situado encima de la TOC para ver la documentación de Azure Sphere (integrado).

Los pares de clave y certificado de cliente y los certificados de entidad de certificación expiran periódicamente. La infraestructura de red y los dispositivos deben ser capaces de controlar la expiración de los certificados y presentar un nuevo certificado sin perder la conectividad. Los certificados de entidad de certificación raíz, que se usan en la autenticación del servidor RADIUS, y los certificados de cliente, que se usan en la autenticación de dispositivos, requieren enfoques diferentes para su actualización.

Precaución

Dado que los identificadores de certificado tienen como ámbito todo el sistema, un comando azsphere o una llamada de función que agrega un certificado nuevo pueden sobrescribir un certificado agregado por un comando o una llamada de función anteriores, lo que podría producir errores de conexión de red. Se recomienda que desarrolle unos procedimientos de actualización de certificados claros y elija cuidadosamente los identificadores de certificado.

Consulte Identificadores de certificado para más información sobre cómo utiliza Azure Sphere los identificadores de certificado.

Actualización de un certificado de entidad de certificación raíz

Un certificado de entidad de certificación es la entidad de certificación raíz del certificado de autenticación en el servidor RADIUS. Si expira el certificado de entidad de certificación o cambia la infraestructura PKI del servidor (por ejemplo, si el servidor adquiere una nueva entidad de certificación raíz de una entidad de certificación diferente), los dispositivos Azure Sphere ya no se podrán autenticar en el servidor de autenticación RADIUS. Sin embargo, los dispositivos deben seguir funcionando.

En una red inalámbrica típica, no es posible realizar una transición total "en el límite", es decir, no se pueden actualizar todos los dispositivos Azure Sphere en el instante exacto en que la entidad de certificación raíz deja de ser válida. Los dispositivos pueden estar sin conexión en el momento crítico o la precisión del cronometraje puede variar entre las instalaciones. La aplicación de alto nivel debe ser capaz de obtener el nuevo certificado de entidad de certificación raíz antes de que expire o cambie el actual, de modo que el nuevo certificado esté listo para su uso cuando sea necesario.

El enfoque recomendado consiste en crear y habilitar una segunda red que tenga la misma configuración que la red existente, pero que utilice el nuevo certificado de entidad de certificación raíz. Si se produce un error en el certificado de entidad de certificación raíz existente en la red original, el sistema operativo intentará conectarse a la segunda red automáticamente. Posteriormente, la aplicación puede reemplazar el certificado de la red original por la nueva entidad de certificación raíz y eliminar la segunda red. Después, el dispositivo puede conectarse mediante la red original, que ahora tiene el nuevo certificado de entidad de certificación raíz. En la siguiente ilustración se resume este enfoque.

Flujo de la aplicación para actualizar el certificado de entidad de certificación raíz

Una aplicación de alto nivel debe seguir estos pasos para controlar sin problemas la actualización del certificado de entidad de certificación raíz:

  1. Como parte del funcionamiento normal, la aplicación configura Network1 con el tipo WifiConfig_Security_Wpa2_EAP_TLS. Esta red está vinculada al certificado de cliente del dispositivo y a Root CA1, que es la entidad de certificación raíz original del servidor RADIUS.

  2. Unos 90 días antes de que expire el certificado de entidad de certificación raíz, el dispositivo recibe una notificación de la nube al dispositivo indicando que se solicitará en breve un nuevo certificado de entidad de certificación raíz para el servidor RADIUS. Un administrador de red u otro operador pueden desencadenar la notificación; Los mecanismos de notificación posibles incluyen un mensaje de nube a dispositivo de Azure IoT Hub o Azure IoT Central.

    El administrador de red es responsable de actualizar el certificado en el servidor RADIUS y de asegurarse de que los dispositivos Azure Sphere se actualizarán correctamente.

  3. La aplicación adquiere una nueva entidad de certificación raíz y llama a CertStore_InstallRootCACertificate, que guardará como Root CA2.

  4. La aplicación crea una nueva red, Network2, mediante una llamada a WifiConfig_AddDuplicateNetwork para duplicar la configuración de Network1. A continuación, la aplicación vincula Root CA2 a Network2 y habilita Network2. Si Network2 está habilitada en el dispositivo y puede conectarse a Internet, el dispositivo la usará si Network1 no está disponible.

  5. La aplicación realiza un sondeo diariamente mediante una llamada a WifiConfig_GetConnectedNetworkId para determinar a qué red está conectado el dispositivo.

    Si se produce un error en la comprobación diaria de la red conectada, el error puede deberse a un problema de certificado en el servidor, en el dispositivo o a algún otro problema. Consulte Solución de problemas de red para obtener ayuda.

    Si el dispositivo está conectado a Network1, significa que el certificado no ha expirado todavía y todo funciona correctamente. La aplicación repite este paso hasta que el dispositivo se conecta a Network2.

    Si el dispositivo está conectado a Network2, esto significa que el certificado antiguo ha expirado, que se ha configurado en el servidor RADIUS la infraestructura PKI actualizada y el dispositivo puede autenticar el servidor con Root CA2.

  6. Cuando el dispositivo funciona correctamente con Network2, la aplicación finaliza los cambios en la configuración de red:

    • Cambia el nombre de Root CA2 a Root CA1 mediante una llamada a CertStore_MoveCertificate. Esta función sobrescribe el elemento Root CA1 expirado con el contenido de Root CA2.
    • Vuelve a cargar la configuración de Network1 mediante una llamada a WifiConfig_ReloadConfig. La configuración de Network1 coincide ahora con la red actual.
    • Elimina la configuración de Network2 mediante una llamada a WifiConfig_ForgetNetworkById.

Actualización de un certificado de cliente

El certificado de cliente consta del par de claves pública y privada que se usan para autenticar el dispositivo Azure Sphere. Al igual que el certificado de entidad de certificación raíz, el certificado de cliente expirará con una periodicidad dada y el dispositivo debe ser capaz de presentar un nuevo certificado. La aplicación de alto nivel es responsable de obtener el nuevo certificado antes de que expire el certificado existente. Una aplicación puede obtener la fecha y hora a la que expira un certificado mediante una llamada a CertStore_GetCertificateNotAfter.

En la siguiente ilustración se resume este procedimiento. Este patrón permite que el código para actualizar el certificado use identificadores de certificado constantes, como ClientCert1 y ClientCert2, en lugar de crear un nombre único para cada certificado nuevo. Además, no requiere intercambios de red ni limpieza de certificados de cliente.

Flujo de la aplicación para actualizar el certificado de cliente

Una aplicación de alto nivel debe seguir estos pasos para controlar sin problemas la actualización del certificado de cliente:

  1. Como parte del funcionamiento normal, la aplicación configura Network1 con el tipo WifiConfig_Security_Wpa2_EAP_TLS. Esta red está vinculada al certificado de cliente del dispositivo (ClientCert1) y a la entidad de certificación raíz original del servidor RADIUS. Antes de que la aplicación inicie el procedimiento de actualización, se comprueba que el dispositivo está conectado a Network1 mediante una llamada a WifiConfig_GetNetworkIdByConfigName y WifiConfig_GetConnectedNetworkId. Si los identificadores de red coinciden, es seguro que la aplicación está conectada a la red deseada.

  2. La aplicación llama a CertStore_GetCertificateNotAfter a intervalos regulares para determinar cuándo expirará el certificado de cliente. Como alternativa, la aplicación podría almacenar la fecha de expiración en el almacenamiento mutable; sin embargo, debe comprobar la fecha de expiración a diario y también después de cada reinicio.

    La aplicación compara la fecha y la hora de expiración con la fecha y hora actuales. Si el certificado expira dentro del período de umbral predeterminado, la aplicación obtiene un nuevo certificado. La longitud del período de umbral es de su elección. Como procedimiento recomendado, se recomienda obtener un nuevo certificado al menos cuatro semanas antes de la expiración en caso de que el dispositivo esté sin conexión durante un largo período de tiempo o encuentre problemas repetidos de red o servidor. Cuanto antes lo compruebe, más tiempo tendrá para resolver cualquier problema.

  3. La aplicación obtiene un nuevo certificado del emisor de certificados adecuado. La elección de un emisor de certificados es responsabilidad del administrador de la red local.

  4. La aplicación guarda el nuevo certificado como ClientCert2 mediante una llamada a CertStore_InstallClientCertificate y lo agrega a la configuración Wi-Fi de Network1 mediante una llamada a WifiConfig_SetClientCertStoreIdentifier.

  5. Vuelve a cargar la configuración Wi-Fi mediante una llamada a WifiConfig_ReloadConfig. Este paso hace que ClientCert2 esté disponible para que el dispositivo lo utilice en las conexiones de red.

  6. Compruebe si la conexión de red se ha realizado correctamente.

    • Una conexión correcta significa que ClientCert2 ahora es válido.

      • Cambie el nombre de ClientCert2 a ClientCert1 mediante una llamada a CertStore_MoveCertificate.

      • Deshabilite Network1 mediante una llamada a WifiConfig_SetNetworkEnabled para establecer el estado habilitado de la red en False y, a continuación, vuelva a habilitar Network1 mediante una llamada a WifiConfig_SetNetworkEnabled para establecer el estado habilitado en true. Al deshabilitar y volver a habilitar la configuración, el contenido del certificado cuyo nombre se ha cambiado pasa a estar disponible para la aplicación.

    • Un error de conexión significa que ClientCert2 aún no es válido o que se produjo algún otro error.

      • Si el certificado aún no es válido, continúe con el paso 7 para devolver la configuración de red a su estado original.
      • Si se produjo algún otro error, consulte Solución de problemas de red para obtener ayuda y reintentar la conexión.
  7. Independientemente de si la conexión de red se ha realizado correctamente, vuelva a cargar la configuración Wi-Fi mediante una llamada a WifiConfig_ReloadConfig. Si la conexión se realizó correctamente, la configuración recargada usará el nuevo ClientCert1, que fue reemplazado por ClientCert2. Si se produjo un error en la conexión, la configuración recargada usará ClientCert1.