You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将PEM格式RSA公私钥转换为DER格式X.509证书或JWK字符串?

解决方案:将RSA密钥转换为X.509证书或JWK格式

错误原因说明

你之前执行openssl x509命令报错,是因为该命令仅用于处理X.509证书文件,但你传入的是原始RSA密钥(私钥/公钥),并非证书,因此无法识别。


方法1:生成X.509自签名证书

基于你的RSA私钥创建自签名证书,步骤如下:

  1. 生成证书签名请求(CSR):

    openssl req -new -key <private-key-file>.pem -out csr.pem
    

    执行时会提示填写国家、组织等信息,可随意填写,不影响JWT验证;如果私钥是加密的,需要输入你设置的密码。

  2. 用CSR和私钥生成自签名X.509证书(有效期设为365天):

    openssl x509 -req -days 365 -in csr.pem -signkey <private-key-file>.pem -out cert.pem
    

    生成的cert.pem就是PEM格式的X.509证书,可直接复制全部内容(包括首尾标记)到jwt.io的公钥输入框,选择「X.509 Certificate」选项即可验证JWT。

    若需DER格式证书,可执行:

    openssl x509 -in cert.pem -outform DER -out cert.der
    

方法2:转换为JWK格式

公钥转JWK

直接使用已生成的公钥文件:

openssl pkey -pubin -in <public-key-file>.pem -outform JWK -out public.jwk

或者通过私钥导出公钥并转JWK:

openssl rsa -in <private-key-file>.pem -pubout -outform PEM | openssl pkey -pubin -outform JWK -out public.jwk

私钥转JWK(仅需私钥验证场景)

由于你的私钥是加密的,需先解密(可选,也可直接在命令中输入密码):

openssl rsa -in <encrypted-private-key>.pem -out decrypted-private.pem

再转换为JWK:

openssl pkey -in decrypted-private.pem -outform JWK -out private.jwk

jwt.io使用提示

  • 选择X.509证书时,复制cert.pem的完整内容(包含-----BEGIN CERTIFICATE-----和-----END CERTIFICATE-----)到公钥区域。
  • 选择JWK时,复制public.jwk的JSON内容到公钥区域即可。

内容的提问来源于stack exchange,提问作者NotDaPenguinHimself

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 18:35:14