密钥类型(kty):EC,带有 crv(P-256、P-384、P-521、secp256k1)、x 和 y;RSA,带有 n 和 e(私钥还有 d、p、q、dp、dq、qi);OKP(RFC 8037),crv 为 Ed25519、Ed448、X25519 或 X448,并带有 x;oct,用 k 表示对称密钥。取值为 base64url 编码的大端序整数或字节串;坐标是定长的(P-256 为 32 字节),因此去掉前导零字节会破坏密钥。
可选元数据:kid、alg(把密钥固定到一种算法)、use(sig 或 enc)、key_ops,以及指向证书的 x5c 或 x5t#S256。私钥 JWK 包含 d:切勿公开这个成员,把密钥放入 JWKS 之前要先删除它。本站的工具在只需要公钥的地方会拒绝带有 d 的 JWK。
与 PEM 之间的相互转换对密钥材料而言是无损的;node:crypto(createPublicKey,以及带 format: "jwk" 的 export)、WebCrypto 的 jwk 导入和导出,以及 JWK 转换器都可以完成转换。