【发布时间】:2021-11-27 23:52:51
【问题描述】:
我从一个端点获取 JWKS,它看起来像这样:
{
"keys": [
{
"kty": "RSA",
"use": "sig",
"x5t": "M2maFm3VYlMBOn3GetVWGXkrKrk",
"kid": "SIGNING_KEY",
"x5c": "MIIC………(base64 encoded cert)………..tow==",
"alg": "RS256"
}
]
}
我正在尝试使用 shell 和 openssl 将此 x5c 值转换为公钥 (.pub) 文件
我尝试从上述 json 复制粘贴 x5c 值并通过以下操作添加到 .pem 文件中:
vi certificate.pem
fold -w 64 certificate.pem
然后在certificate.pem文件中添加以下内容
-----BEGIN CERTIFICATE-----
<value>
-----END CERTIFICATE-----
在此之后,我尝试运行以下命令来获取公钥:
openssl x509 -pubkey -inform pem -in certificate.pem -noout > key.pub
但遇到类似这样的编码错误:
unable to load certificate
140735207381436:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1319:
140735207381436:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:tasn_dec.c:381:Type=X509_CINF
140735207381436:error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error:tasn_dec.c:751:Field=cert_info, Type=X509
140735207381436:error:0906700D:PEM routines:PEM_ASN1_read_bio:ASN1 lib:pem_oth.c:83:
我搞砸了什么?谢谢
【问题讨论】:
-
你的步骤对我有用,即使没有折叠内容。也许您的 JWK 设置不正确?例如,
x5c应该是一个数组。你能检查证书的指纹是否匹配x5t?
标签: shell openssl rsa x509certificate jwk