小编use*_*ser的帖子

如何通过 shell 使用 openssl 库从 JWKS 中提取公钥

我从端点获取了 JWKS,它看起来像这样:

\n
{\n  "keys": [\n    {\n      "kty": "RSA",\n      "use": "sig",\n      "x5t": "M2maFm3VYlMBOn3GetVWGXkrKrk",\n      "kid": "SIGNING_KEY",\n      "x5c": "MIIC\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6(base64 encoded cert)\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6..tow==",\n      "alg": "RS256"\n    }\n  ]\n}\n
Run Code Online (Sandbox Code Playgroud)\n

.pub我正在尝试使用 shell将此 x5c 值转换为公钥 ( ) 文件openssl

\n

我尝试复制粘贴x5c上述 json 中的值并.pem通过执行以下操作将其添加到文件中:

\n
vi certificate.pem\nfold -w 64 certificate.pem\n
Run Code Online (Sandbox Code Playgroud)\n

然后certificate.pem也在文件中添加以下内容

\n
-----BEGIN CERTIFICATE-----\n<value>\n-----END CERTIFICATE-----\n
Run Code Online (Sandbox Code Playgroud)\n

之后我尝试运行以下命令来获取公钥:

\n

openssl x509 -pubkey -inform pem -in certificate.pem -noout > key.pub

\n

但遇到类似这样的编码错误:

\n
unable to load certificate\n140735207381436:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1319:\n140735207381436:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested …
Run Code Online (Sandbox Code Playgroud)

shell openssl rsa x509certificate jwk

5
推荐指数
1
解决办法
1186
查看次数

标签 统计

jwk ×1

openssl ×1

rsa ×1

shell ×1

x509certificate ×1