Pular para o conteúdo
ecdsa.com
jwks-rsa (Node.js)JWKS e descoberta de chaves

Mensagem de erro

The JWKS endpoint did not contain any signing keys

Também aparece como

  • The JWKS endpoint did not contain any keys

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

O que significa

O endpoint JWKS respondeu com chaves, mas, depois da filtragem, nenhuma delas consegue verificar assinaturas. O jwks-rsa mantém apenas as chaves cujo `use` é `"sig"` ou está ausente, cujo `kty` é RSA, EC ou OKP e que são importadas com sucesso como chaves públicas. Todo o resto — chaves de criptografia, chaves simétricas, JWKs malformadas ou privadas — é descartado. A mensagem irmã “did not contain any keys” significa que o próprio array `keys` estava vazio ou ausente.

Por que acontece

Como corrigir

  1. 1.

    Ver kty, use e alg de cada chave

    Uma única linha de jq mostra por que cada chave é filtrada. Uma linha de saída com `has_private: true` significa que o conjunto de chaves vaza uma chave privada: remova-a e rotacione essa chave.

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

    Publicar pelo menos uma chave de assinatura

    Se o endpoint for seu, inclua cada chave de assinatura ativa com `use: "sig"`, um `kid` único e o `alg` dela. Chaves de criptografia podem ficar no mesmo conjunto, desde que estejam marcadas com `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" }
      ]
    }

Erros relacionados

Ver toda a base de erros de assinatura