簡體   English   中英

如何使用 openssl 庫而不是 shell 從 JWKS 中提取公鑰

[英]How to extract public key from a JWKS using openssl library over shell

我從端點獲取 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:

我搞砸了什么? 謝謝

做的時候

vi certificate.pem
fold -w 64 certificate.pem

您忘記使用折疊內容更新文件,例如

fold -w 64 cert.pem > folded.pem && cat folded.pem > cert.pem && rm folded.pem

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM