【问题标题】:OpenSSL x509 utility PEM to DER conversion fails with "PEM_read_bio:no start line" [duplicate]OpenSSL x509 实用程序 PEM 到 DER 的转换失败,并显示“PEM_read_bio:no start line”[重复]
【发布时间】:2017-02-24 01:31:51
【问题描述】:

尝试使用以下命令将 .pem 文件转换为 .der 文件。

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

遇到错误

unable to load certificate
31833:error:0906D06C:PEM routines:PEM_read_bio:no start line:/SourceCache/OpenSS
L098/OpenSSL098-52.30.1/src/crypto/pem/pem_lib.c:648:Expecting: TRUSTED CERTIFIC
ATE

我已经使用下面生成了 RSA 私钥/公钥。

openssl genrsa -out private_key.pem 2048
openssl rsa -pubout -in private_key.pem -out public_key.pem

【问题讨论】:

  • 您生成的是 RSA 密钥对,而不是证书。每个证书都包含一个公钥,您可以使用 RSA 密钥创建证书...
  • @Robert 你能指导一下,怎么做?
  • 根据答案和欺骗,您可能需要证书。但是如果你真的想要一个只有公钥的文件,它实际上只能用于 OpenSSL 和一些 Java 程序(那些使用X509EncodedKeySpec 显式处理密钥的程序),请执行openssl {rsa,pkey} -pubin -in public.pem -out public.der -outform der 或首先执行openssl {rsa,pkey} -in private.pem -pubout -out public.der -outform der .

标签: ssl encryption openssl rsa encryption-asymmetric


【解决方案1】:

您正在创建一个 RSA 密钥对。您正在尝试将公钥转换为 DER 格式。

openssl x509 命令需要 X.509 容器内的公钥。

试试这个命令来创建私钥和公共证书。

  1. 创建自签名 CA 证书:

    openssl genrsa  -out CAkey.pem 2048

    openssl req -new -x509 -key CAkey.pem -out cacert.pem -days 1095

  2. 现在创建另一个由上面创建的 CA 签名的证书

    openssl genrsa -out serverkey.pem 2048

    openssl req -new -key serverkey.pem -out server.csr

    openssl x509 -req -days 1000 -in server.csr -CA cacert.pem -CAkey CAkey.pem -out server.pem -set_serial 01

稍后将 PEM 中的公共证书转换为 DER 格式。

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

【讨论】:

  • 如果您所做的唯一事情如上所示,则证书可能不会格式正确。
  • @jww,我已经编辑了答案,增加了更多相关性。我想了解您的评论。您能否详细说明为什么证书格式不正确?
猜你喜欢
  • 2018-11-01
  • 1970-01-01
  • 2023-03-04
  • 1970-01-01
  • 2020-11-07
  • 2016-09-04
  • 2017-02-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多