Diagnóstico de enrolamiento
Localiza fallos de transporte, autenticación, registro, emisión e instalación.
Diagnostica una operación y un dispositivo cada vez. Anota DMS/APS, endpoint, hora, código HTTP, serie presentada y CN de la CSR. Conserva la respuesta sin incluir claves privadas ni credenciales de webhook en el informe.
Diagnóstico y compatibilidad
Códigos de error y diagnóstico
El controlador EST devuelve normalmente 400 al rechazar entrada y 500 cuando el servicio rechaza o falla la operación. Un 500 también puede representar una denegación de política; no implica que reintentar sea seguro. Gateway puede generar sus propios códigos y cuerpos. Revisa el cuerpo real y el resultado persistido.
| Síntoma o mensaje | Qué revisar |
|---|---|
| curl rechaza TLS, nombre o emisor | URL, reloj, SAN del servidor y raíz aprobada en est-trust.pem. Resolver la confianza en Despliegue; no omitir la verificación. |
| 404 o APS ausente | Ruta pública /.well-known/est/{DMS_ID}/{operation} y DMS existente. El APS no es el nombre del servicio. |
| 400, error de CSR o formato | Content-Type: application/pkcs10, Base64 de DER, firma válida y cuerpo conservado sin doble codificación. |
| Credencial ausente o certificado no válido | Modo de la operación, CA validante, fechas, revocación y entrega de la credencial por Gateway. No confundir confianza TLS del servidor con CA de bootstrap. |
| Webhook deniega, expira o responde sin autorización | Configuración, conectividad y respuesta JSON con authorized: true. No hay degradación automática a NO_AUTH. |
unexpected status code: <n>: redirects are not followed | El webhook respondió con una redirección. Configura la URL final absoluta http o https en la configuración del webhook; nunca se siguen redirecciones. |
webhook response exceeds 1048576 bytes | El receptor devolvió más de 1 MiB de JSON. Reduce la respuesta del webhook de autorización. |
webhook config must not reference files | La configuración del webhook apunta a archivos (ca_cert_file, mtls_options.cert_file, mtls_options.key_file). Para mTLS, introduce el certificado y la clave como PEM codificado en Base64 en cert_content y key_content, o como PEM en claro; elimina cualquier otro campo de archivo, incluido ca_cert_file, que no tiene equivalente en línea (el certificado del receptor debe encadenar con el almacén de confianza del sistema). Consulta la guía de credenciales del webhook en DMS. |
mtls_options.cert_content must be base64-encoded PEM | El valor no es ni PEM codificado en Base64 ni PEM en claro: es una ruta de archivo o es Base64 de datos que no son PEM. Introduce el certificado y la clave como PEM codificado en Base64, como el resto de certificados de la API, o como PEM en claro (consulta los ajustes del webhook en DMS). El mismo mensaje nombra mtls_options.key_content cuando el valor no válido es la clave. |
webhook mTLS certificate and key are invalid: … | El certificado y la clave no forman un par coincidente. Introduce ambos valores del mismo par; la comprobación se ejecuta al guardar el DMS y de nuevo en cada llamada del webhook. |
400 struct validation error al crear o actualizar un DMS | La configuración del webhook de la operación que lo usa no es válida. Revisa external_webhook_settings en DMS. |
HTTP 500 con cuerpo err en enroll o reenroll | Los fallos del servicio llegan al cliente EST como 500 con un cuerpo de err más el mensaje; los errores de autorización del webhook se nombran ahí. |
device not preregistered | PRE_REGISTRATION requiere la entrada de inventario previa. |
forbiddenNewEnrollment | Un dispositivo ya existente exige sustitución habilitada, incluso en No Identity. Investiga antes de activar el flag. |
| DMS propietario distinto | CN/ID, inventario global y DMS dueño; no reutilices un ID de otro contexto. |
invalid RawSubject bytes | Sujeto de la CSR frente al certificado actual. Conserva sus atributos, además del CN. |
invalid reenroll window | NotAfter de la identidad actual y reenrollment_delta. Los umbrales de alerta no cambian esa ventana. |
| Certificado actual revocado | Renovación rechazada; prepara recuperación autorizada según la causa. |
| Error de CA, perfil o firma | CA activa, clave disponible, perfil seleccionado y restricciones. Un cacerts correcto no prueba emisión. |
| HTTP 200 sin conexión del dispositivo | Pareja instalada, cadena, usos, confianza y permisos del consumidor. Comprueba también el slot e historial. |
| Timeout o error después de emitir | Certificados nuevos, slot actual y estado de la identidad anterior antes de repetir. |
Notas de compatibilidad
Los ejemplos usan el contrato del backend examinado. No atribuyas automáticamente ese comportamiento a otra release. Verifica el modo de renovación guardado y el comportamiento del Gateway con certificados vencidos y con la CA inicial.
La respuesta predeterminada es PKCS#7 DER en Base64; el PEM por Accept: application/x-pem-file es una extensión de Lamassu. ServerKeyGen devuelve multipart y requiere tratar cada parte por separado. Consulta la referencia EST.
El enrolamiento EST falla
- Comprueba HTTPS con la raíz aprobada y consulta cacerts para el APS correcto.
- Revisa el DMS guardado: protocolo, registro, autenticación de esa operación, CA, perfil y ventana.
- Verifica la CSR localmente y relaciona su CN con el inventario.
- Ejecuta una solicitud, guarda cabeceras/cuerpo y consulta el dispositivo y los certificados.
- Si recibes identidad, comprueba clave, sujeto, uso y conexión con el consumidor.
Las comprobaciones externas de revocación del bootstrap tienen límites: ausencia de evidencia puede aceptarse, y OCSP Unknown no produce el mismo rechazo que Revoked. No presupongas una política de rechazo ante cualquier incertidumbre. Una CA intermedia en la cadena TLS tampoco demuestra que toda la cadena haya llegado al validador DMS.
Para logs, red, pods o cabeceras de Gateway, continúa en Diagnóstico de Despliegue. Para identidades emitidas, revocadas o vinculadas parcialmente, utiliza Renovación y recuperación y Dispositivos e identidades.
Referencia EST
Consulta las rutas, formatos, autenticación y respuesta multipart de Lamassu.
AWS IoT Core
El conector de Lamassu para AWS IoT Core sincroniza las identidades de los dispositivos con la plataforma AWS, gestionando el registro de CAs, el aprovisionamiento de Things y el ciclo de vida de los certificados de forma automática y orientada a eventos.