← 返回工具箱

JOSE / RFC 7517 / RFC 7638

JWK / JWKS / PEM 转换与校验

检查密钥类型、用途与 kid,把 RSA/EC 公私钥在 JWK 和 PEM 之间转换,并生成只含公开成员的 JWKS 与 RFC 7638 SHA-256 指纹。

真实私钥不要粘贴到普通网页:本页不会上传输入,但浏览器扩展、剪贴板历史、录屏与下载目录仍可能泄露内容。正式私钥优先留在 KMS、HSM 或最终部署环境;这里使用测试密钥和脱敏样本。

粘贴 JWK、JWKS 或 PEM,也可以载入 DER/CRT 文件。所有转换都在浏览器本地完成。

INPUT

密钥材料

当前来源:内置 P-256 公钥示例

来源

等待输入

有效密钥

私钥输入

等待解析

解析后会显示每把密钥的类型、位数、用途冲突、私钥风险、RFC 7638 指纹、公开 JWKS 与可导出的 PEM。

公开 JWKS 只放公开成员

RSA 的 d、p、q、dp、dq、qi 和 EC 的 d 都是私钥参数。页面生成 JWKS 时会移除它们,对称 oct 密钥则完全不进入公开输出。

kid 不是密钥本身

kid 只是选择提示,可能重复也可能缺失。本页可用 RFC 7638 指纹补齐稳定 kid,但验证端仍要按算法、用途和真实公钥完成签名检查。

证书与 JWK 可以对照

CRT/CER/DER 证书会提取 SPKI 公钥再转换为 JWK,适合检查 JWT 配置中的公钥是否确实来自准备使用的证书。

RELATED TOOLS

查看全部工具 →

USE & REVIEW

JWK / JWKS / PEM 转换与校验常见问题

查看全部工具指南 →

JWK 和 JWKS 有什么区别?

JWK 是一把密钥的 JSON 表示;JWKS 是带 keys 数组的密钥集合,常由身份服务通过固定 URL 发布,验证方再根据 JWT Header 的 kid 选择公钥。JWKS 可以同时保留轮换中的新旧公钥,但不能把私钥参数或对称 oct 密钥公开出去。

kid 和 RFC 7638 Thumbprint 是一回事吗?

kid 是应用层的密钥标识,可以由发布方按自己的轮换规则设置;RFC 7638 Thumbprint 则只取该密钥类型必须的公开成员,按固定顺序做 SHA-256 和 Base64URL。工具在缺少 kid 时可用 Thumbprint 作为稳定默认值,但不会假设所有系统都采用这种命名。

公开 JWKS 输出会怎样处理私钥?

RSA、EC 和 OKP 输入若含 d、p、q、dp、dq、qi 等私钥成员,工具会在公开 JWK/JWKS 输出中移除它们,只保留验证需要的公开参数。oct 是共享对称密钥,没有可分离的公钥,因此不会进入公开 JWKS。导出后仍应人工搜索敏感字段并在测试环境验证。

use 和 key_ops 冲突会造成什么问题?

use 常用 sig 或 enc 表示高层用途,key_ops 则列出 sign、verify、encrypt、decrypt 等具体操作。比如 use=sig 却同时声明 encrypt,会让不同 JOSE 库产生拒绝或不一致行为。工具会提示明显冲突,但最终允许的算法、issuer、audience 和权限仍由应用配置决定。

把 PEM 转成 JWK 是否等于生成了证书?

不是。PEM 只是密钥或证书常见文本封装;JWK 是密钥参数的 JSON 表示。公钥 PEM 与 JWK 之间转换不会增加域名、主体、有效期、签发者或信任链。需要 TLS 证书时仍要生成 CSR、由 CA 签发并部署完整证书链。

JWK、PEM、DER 和证书文件会上传吗?

不会。JSON、ASN.1 包装、Web Crypto 导入导出、X.509 公钥提取和 RFC 7638 指纹都在当前浏览器完成。即使页面不上传,私钥仍可能被扩展、剪贴板、下载目录和屏幕共享看到;正式私钥应留在 KMS、HSM 或最终服务端,只用测试材料排错。