openssl 将 id_rsa.pub 转换为 DER 输出

openssl 将 id_rsa.pub 转换为 DER 输出

我无法理解如何使用 openssl 工具转换 rsa 公钥。

这对于私钥来说很好用

$ openssl rsa -in id_rsa -pubout -outform DER > out
writing RSA key

如果我只有一个公钥,我想我可以做同样的事情,只需添加“-pubin”。但我收到一个神秘的错误,抱怨它需要一个公钥...但这就是我给它的。

$ openssl rsa -pubin -in id_rsa.pub -pubout -outform DER > out
unable to load Public Key
140028314654360:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:701:Expecting: PUBLIC KEY

如果我应该使用 pkey,我尝试了,但仍然收到该错误,但没有第二行

$ openssl pkey -pubin -in id_rsa.pub -pubout -outform DER > out
unable to load Public Key

有任何想法吗?

答案1

OpenSSL 无法理解 OpenSSH 格式的公钥。(它们都使用相同的私钥格式,这主要只是巧合——事实上,最近的 OpenSSH 开始使用不同的、不兼容的格式。)

使用最新的 OpenSSH,您可以用来ssh-keygen -f id_rsa -e -m PEM获取 PKCS#1 文件。

同样,ssh-keygen -f id_rsa -e -m PKCS8将为您提供 PKCS#8 格式的密钥。

您还可以使用从私有文件中提取 OpenSSL 格式的公钥-in id_rsa -pubout

相关内容