数据
什么是 JWK 文件?
JWK 是表示加密密钥的 JSON 对象,可包含密钥类型 kty、密钥 ID kid 等元数据。JWKS 在 keys 数组中组合多个 JWK。它常用于发布公钥;含私钥材料的 JWK 属于敏感信息。
.jwk · .json加密密钥的 JSON 表示
适合选择此格式的场景
- 为 OIDC 等系统获取公钥集合
- 在应用间标明密钥标识与预期用途
不宜选择此格式的场景
- 把私钥当作普通文本文件共享
- 替代 X.509 证书本身
常见用途
- 为 Web API 发布公钥和密钥元数据
- 为 JOSE 签名或加密表示密钥
特点
- 以 JSON 表示各密钥类型的参数
- 可携带 kid、use、key_ops 和 alg 等元数据
优点和缺点
优点
- 适合在 Web API 中处理公钥集合
- 密钥 ID 有助于密钥轮换
缺点
- 必须验证密钥类型和算法
- 私钥材料泄露风险很高
打开和转换
如何打开
用 JSON 编辑器或支持 JOSE 的库打开。使用前确认支持的密钥类型、算法和必需参数。
如何转换
工具可将 PEM 等格式转换为 JWK。确认结果是公钥还是私钥,并将私钥结果保存在安全位置。
注意事项
- 不要将含私钥或对称密钥材料的 JWK 放入日志、公开仓库或浏览器资源。
- 信任获取的 JWKS 前,应验证发行者、TLS、用途、算法和 kid 选择规则。
常见问题
JWK 和 JWKS 有什么区别?
JWK 表示一个密钥。JWKS 是含有 keys 数组的 JSON 对象,该数组包含多个 JWK,常用于分发公钥。