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

如何重建.pub公钥文件 解决X509密钥格式无效异常

报错根因说明

  1. OpenSSL读取报错:openssl x509 是专门用于解析完整X509数字证书的命令,你所持有的.pub为独立公钥文件,并非完整证书,格式不匹配所以无法正常加载。
  2. Java异常报错:X509EncodedKeySpec 要求输入参数为 DER编码的X509格式公钥字节数组,如果你的公钥是带头尾标识的PEM格式、编码类型错误、或公钥非RSA类型,都会触发格式校验失败。

查看现有公钥信息的操作方法

首先判断公钥格式:用文本编辑器打开.pub文件,如果能看到-----BEGIN PUBLIC KEY-----开头的头尾标识则为PEM格式,全为乱码则为DER格式,对应执行以下命令即可读取信息:

  • PEM格式公钥查询命令:
    openssl rsa -pubin -in test.pub -text -noout
  • DER格式公钥查询命令:
    openssl rsa -pubin -inform DER -in test.pub -text -noout

生成符合Java要求的公钥步骤

按照以下流程生成的公钥可直接适配X509EncodedKeySpec的格式要求:

  1. 生成2048位RSA私钥:
    openssl genrsa -out test_private.key 2048
  2. 导出直接可用的DER格式X509公钥:
    openssl rsa -in test_private.key -pubout -outform DER -out test_public.der
    代码中直接读取该.der文件的字节数组传入X509EncodedKeySpec即可正常使用。
  3. 如果你需要使用PEM格式公钥,在Java代码中需做预处理:删除PEM文件头尾的标识行、移除所有换行符,将剩余的Base64字符串解码为字节数组后再传入X509EncodedKeySpec即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 21:06:03