Saltar al contenido
ecdsa.com
jwks-rsa (Node.js)JWKS y descubrimiento de claves

Mensaje de error

The JWKS endpoint did not contain any signing keys

También se muestra como

  • The JWKS endpoint did not contain any keys

jwks-rsa (Node.js) — JwksError from getSigningKey()

Qué significa

El endpoint JWKS respondió con claves, pero, tras el filtrado, ninguna puede verificar firmas. jwks-rsa conserva solo las claves cuyo `use` es `"sig"` o no existe, cuyo `kty` es RSA, EC u OKP y que se importan correctamente como claves públicas. Todo lo demás —claves de cifrado, claves simétricas, JWK mal formadas o privadas— se descarta. El mensaje hermano «did not contain any keys» significa que el propio array `keys` estaba vacío o no existía.

Por qué ocurre

Cómo solucionarlo

  1. 1.

    Revisar kty, use y alg de cada clave

    Una línea de jq muestra por qué se descarta cada clave. Una fila con `has_private: true` significa que el conjunto de claves expone una clave privada: elimínala y rota esa clave.

    bash
    curl -s "$JWKS_URI" | jq '.keys[] | {kid, kty, use, alg, crv, has_private: has("d")}'
  2. 2.

    Publicar al menos una clave de firma

    Si gestionas el endpoint, incluye cada clave de firma activa con `use: "sig"`, un `kid` único y su `alg`. Las claves de cifrado pueden estar en el mismo conjunto siempre que lleven la marca `use: "enc"`.

    json
    {
      "keys": [
        { "kty": "RSA", "kid": "sig-2026-10", "use": "sig", "alg": "RS256", "n": "…", "e": "AQAB" },
        { "kty": "RSA", "kid": "enc-2026", "use": "enc", "alg": "RSA-OAEP-256", "n": "…", "e": "AQAB" }
      ]
    }

Errores relacionados

Explorar toda la base de datos de errores de firma